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

War es hilfreich?

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)));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top