Wie lese ich formatierte Eingabe in Java?
Frage
Angenommen, meine Eingabedatei enthält:
3 4 5 6 7 8
9
10
Ich möchte eine while-Schleife laufen und ganze Zahlen lesen, so dass ich 3,4,5,6,7,8 und 10 jeweils nach jeder Iteration der Schleife erhalten wird.
Dies ist wirklich einfach in C / C ++ zu tun, aber nicht in Java ...
Ich habe versucht, diesen Code ein:
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) {
}
und was ich bekommen ist:
51
540287029
540418080
538982176
151599117
171511050
218762506
825232650
Wie lese ich die ganzen Zahlen von dieser Datei in Java
Lösung
Man kann verwenden, um die Scanner
Klasse und ihre nextInt
Methode:
Scanner s = new Scanner("3 4 5 6");
while (s.hasNext()) {
System.out.println(s.nextInt());
}
Ausgabe:
3
4
5
6
Im Grunde standardmäßig das Scanner
Objekt wird jede Leerzeichen ignorieren, und wird das nächste Token erhalten.
Die Scanner
Klasse als Konstrukteur die eine InputStream
als Quelle für den Zeichenstrom, so dass man ein FileInputStream
, die die Quelle des Textes öffnet sich.
Setzen Sie die Scanner
Instanziierung im obigen Beispiel mit dem folgenden:
Scanner s = new Scanner(new FileInputStream(new File(filePath)));