Como leio a entrada formatada em Java?
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?
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)));