Bonjour,

Je suis en Java 5.0 et j'essaye de lire un fichier text ligne à ligne pour en extraire les données et les enregistrer dans une base de données.
Lors de la lecture du fichier, ma fonction s'arrête à la ligne 7849 alors que j'ai 14000 lignes. De plus, lorsque j'affiche cette dernière ligne extraite, je n'ai que la moitié des informations, comme si la fin de la ligne n'était pas prise en compte, et le programme ne voit pas de lignes supplémentaires à afficher.
La fonction utilisée est la suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
String filePath = "g:\\fichier.txt";
 
Scanner scanner=new Scanner(new File(filePath));
 
// On boucle sur chaque champ detecté
while (scanner.hasNextLine()) {
    String line = scanner.nextLine();
 
    System.out.println(line);
	//faites ici votre traitement
}
 
scanner.close();
J'ai alors essayé avec le code suivant et le programme réussit cette fois à lire l'intégralité du fichier:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
String filePath = "g:\\fichier.txt";
 
try{
// Création du flux bufférisé sur un FileReader, immédiatement suivi par un 
// try/finally, ce qui permet de ne fermer le flux QUE s'il le reader
// est correctement instancié (évite les NullPointerException)
BufferedReader buff = new BufferedReader(new FileReader(filePath));
 
try {
String line;
// Lecture du fichier ligne par ligne. Cette boucle se termine
// quand la méthode retourne la valeur null.
while ((line = buff.readLine()) != null) {
System.out.println(line);
//faites ici votre traitement
}
} finally {
// dans tous les cas, on ferme nos flux
buff.close();
}
} catch (IOException ioe) {
// erreur de fermeture des flux
System.out.println("Erreur --" + ioe.toString());
}
Le fichier est codé au format DOS. En affichant les caractères spéciaux sous ultraEdit, je ne relève aucune incohérence dans le fichier.

Savez-vous d'où peut venir le problème ?

Merci par avance pour vos conseils.

Thib