read metodos library java user-input readline datainputstream

java - metodos - Método de DataLine() desaprobado de DataInputStream



readline java (3)

La desaprobación y las alternativas generalmente ya están explicadas explícitamente en los javadocs . Así que sería el primer lugar para buscar la respuesta. Para DataInputStream puedes encontrarlo here . El método readLine() está here . Aquí hay un extracto de relevancia:

En desuso Este método no convierte correctamente los bytes en caracteres. A partir de JDK 1.1, la forma preferida de leer líneas de texto es a través del método BufferedReader.readLine() . Los programas que usan la clase DataInputStream para leer líneas se pueden convertir para usar la clase BufferedReader reemplazando el código del formulario:

DataInputStream d = new DataInputStream(in);

con:

BufferedReader d = new BufferedReader(new InputStreamReader(in));

La codificación de caracteres se puede especificar explícitamente en el constructor de InputStreamReader .

El Scanner que se introdujo desde Java 1.5 también es una buena alternativa (y moderna).

Estoy en Java 6. Usando DataInputStream in = new DataInputStream(System.in); para leer la entrada del usuario. Cuando el readLine () está en desuso. ¿Cuál es la solución para leer el valor del usuario?

DataInputStream in = new DataInputStream(System.in); int num; try { num = Integer.parseInt(in.readLine()); //this works num = Integer.parseInt(in); //just in doesnt work. } catch(Exception e) { }

por favor explique como debería cuando la readLine () está en desuso.


Lo de abajo no funciona,

num = Integer.parseInt(in);

En su lugar, debe utilizar:

num = Integer.parseInt(in.readLine());

readLine() leerá una entrada de línea hasta el salto de línea.


InputStream es fundamentalmente una construcción binaria. Si desea leer datos de texto (p. Ej., Desde la consola), debe utilizar un Reader alguna descripción. Para convertir un InputStream en un Reader , use InputStreamReader . Luego cree un BufferedReader alrededor del Reader , y puede leer una línea usando BufferedReader.readLine() .

Más alternativas:

  • Use un Scanner integrado en System.in y llame a Scanner.nextLine
  • Use una Console (obtenida de System.console() ) y llame a Console.readLine