Come posso leggere l'input formattato in Java?
Domanda
Supponiamo che il mio file di input contenga:
3 4 5 6 7 8
9
10
Voglio eseguire un ciclo while e leggere numeri interi, in modo da ottenere rispettivamente 3,4,5,6,7,8 e 10 dopo ogni iterazione del ciclo.
Questo è davvero semplice da fare in C / C ++ ma non in Java ...
Ho provato questo codice:
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 quello che ottengo è:
51
540287029
540418080
538982176
151599117
171511050
218762506
825232650
Come posso leggere gli interi da questo file in Java ?
Soluzione
È possibile utilizzare Scanner
e la sua Metodo nextInt
:
Scanner s = new Scanner("3 4 5 6");
while (s.hasNext()) {
System.out.println(s.nextInt());
}
Output:
3
4
5
6
Fondamentalmente per impostazione predefinita, l'oggetto Scanner
ignorerà qualsiasi spazio bianco e otterrà il token successivo.
La Classe Scanner
come costruttore che accetta una InputStream
come sorgente del flusso di caratteri, quindi è possibile utilizzare un FileInputStream
che apre l'origine del testo.
Sostituisci l'istanza Scanner
nell'esempio sopra con il seguente:
Scanner s = new Scanner(new FileInputStream(new File(filePath)));