Question

Supposons que mon fichier d'entrée contienne:

3 4 5 6    7        8
9


10

Je souhaite exécuter une boucle while et lire des nombres entiers, de manière à obtenir respectivement 3,4,5,6,7,8 et 10 après chaque itération de la boucle.

C’est très simple à faire en C / C ++ mais pas en Java ...

J'ai essayé ce code:

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) {

    }

et ce que je reçois est:

51
540287029
540418080
538982176
151599117
171511050
218762506
825232650

Comment lire les entiers de ce fichier dans Java ?

Était-ce utile?

La solution

On peut utiliser le Scanner et sa Méthode nextInt :

Scanner s = new Scanner("3  4        5   6");

while (s.hasNext()) {
  System.out.println(s.nextInt());
}

Sortie:

3
4
5
6

Fondamentalement, par défaut, l’objet Scanner ignorera les blancs et obtiendra le prochain jeton.

Le La classe Scanner en tant que constructeur qui prend une InputStream comme source du flux de caractères, vous pouvez donc utiliser un FileInputStream qui ouvre la source du texte.

Remplacez l'instanciation Scanner dans l'exemple ci-dessus par ce qui suit:

Scanner s = new Scanner(new FileInputStream(new File(filePath)));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top