Pergunta

Suponha que meu arquivo de entrada contenha:

3 4 5 6    7        8
9


10

Quero correr um pouco e ler números inteiros, para obter 3,4,5,6,7,8 e 10, respectivamente, após cada iteração do loop.

Isso é realmente simples de fazer em C/C ++, mas não em Java ...

Eu tentei 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) {

    }

E o que recebo é:

51
540287029
540418080
538982176
151599117
171511050
218762506
825232650

Como faço para ler os números inteiros disso Arquivo dentro Java?

Foi útil?

Solução

Pode -se usar o Scanner classe e sua nextInt método:

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

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

Resultado:

3
4
5
6

Basicamente por padrão, o Scanner O objeto ignorará qualquer espaço em branco e receberá o próximo token.

o Scanner classe como construtor que leva um InputStream como fonte do fluxo de personagens, para que se possa usar um FileInputStream Isso abre a fonte do texto.

Substitua o Scanner Instanciação no exemplo acima com o seguinte:

Scanner s = new Scanner(new FileInputStream(new File(filePath)));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top