Problème 'Scanner' , lire un fichier .txt
Bonjour à tous,
J'ai un souci avec la fonction scanner de java.
Je désire exploiter les données d'un document texte (situé dans C:\data.txt) de la forme:
Citation:
Puzzle 1(4solutions)
A -4 1 -3 2
B -2 4 3 -2
C -3 1 -2 4
D 3 2 -1 -4
E 2 -1 4 -3
F -4 1 3 -2
G -3 -2 2 1
H -1 -4 2 3
I -2 1 2 -1
qui contient donc une première ligne qui sert de titre, ainsi que 36 chiffres et 9 lettres.
Chaque ligne correspond à une Piece (une Piece se construit à l'aide de 4 int, et une String: Piece(int,int,int,int,String) ). Je voudrai donc remplir un tableau de Piece en utilisant les données de ce fichier.
Voici le code que j'ai:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| public void lire() throws FileNotFoundException{
Scanner scanner=new Scanner(new File("C:\\data.txt"));
// On boucle sur chaque champ detecté
int i = 0;
int j = 0;
int[] tab = new int[36];
String[] lines = new String[10];
while (scanner.hasNextLine() && i<10) {
String line = scanner.nextLine();
while (scanner.hasNextInt()) {
long x = scanner.nextInt();
tab[j] = scanner.nextInt();
j++;
}
lines[i] = line;
i++;
}
scanner.close();
//exemple pour la ligne 1: A -4 1 -3 2
String input = lines[1];
Scanner s = new Scanner(input);
System.out.println(s.nextInt());
//ici je voudrai avoir:
//pieces[1] = new Piece(-4, 1, -3, 2, "A");
s.close();
} |
Or, Eclipse me renvoi l'erreur suivante:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at puzzle.Pool.lire(Pool.java:102)
at puzzle.testPool.main(testPool.java:24)
J'ai cru comprendre que c'était du au fait que je veux récupérer à la fois des lettres et des chiffres mais j'ai du mal à comprendre comment faire.
Si quelqu'un a une idée :)
Merci d'avance !