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:
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 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();
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.
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()); }
Savez-vous d'où peut venir le problème ?
Merci par avance pour vos conseils.
Thib
Partager