Pregunta

Suponga que mi archivo de entrada contiene:

3 4 5 6    7        8
9


10

Quiero ejecutar un ciclo while y leer enteros, para obtener 3,4,5,6,7,8 y 10 respectivamente después de cada iteración del ciclo.

Esto es realmente simple de hacer en C / C ++ pero no en Java ...

Probé este código:

try {
            DataInputStream out2 = new DataInputStream(new BufferedInputStream(new FileInputStream(file)));

            int i=out2.read();
            while(i!=-1){
                System.out.println(i);
                i=out2.readInt();
            }

    } catch (IOException ex) {

    }

y lo que obtengo es:

51
540287029
540418080
538982176
151599117
171511050
218762506
825232650

¿Cómo leo los enteros de este archivo en Java ?

¿Fue útil?

Solución

Se puede usar el Scanner clase y su Método nextInt :

Scanner s = new Scanner("3  4        5   6");

while (s.hasNext()) {
  System.out.println(s.nextInt());
}

Salida:

3
4
5
6

Básicamente, por defecto, el objeto Scanner ignorará cualquier espacio en blanco y obtendrá el siguiente token.

El Scanner clase como constructor que toma una InputStream como la fuente de la secuencia de caracteres, por lo que se podría utilizar un FileInputStream que abre la fuente del texto.

Reemplace la instanciación Scanner en el ejemplo anterior con lo siguiente:

Scanner s = new Scanner(new FileInputStream(new File(filePath)));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top