Comment lire une entrée formatée en Java?
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 ?
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)));