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 claseDataInputStream
para leer líneas se pueden convertir para usar la claseBufferedReader
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: