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 ?

È stato utile?

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)));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top