Bonjour,
J'ai comme un petit souci avec un traitement de fichier, en gros je prends un fichier je récupère des infos fait des traitements sur chaque ligne et enregistre les modifications dans un autre fichier temporaire...
Premièrement voila le code qui fonctionne tout seul faut juste lui donner un fichier à traiter :
Normalement y'a 1203303 lignes de code et j'ai récupérer le nécessaire pour mettre en évidence mon problème. J'ai deux system.out.println() qui m'affichent les dernières lignes qui fonctionnent bien et me renvoient bien les dernières lignes là ou y'a problème c'est quand j'ouvre le fichier temporaire, il me manque un certain nombre de ligne proportionnel au nombre de lignes dans le premier fichier. J'ai fait plusieurs test avec +2000 lignes et il me manquait toujours 9 lignes. j'ai copier coller le contenu pour avoir 4000 lignes et il m'en manquait 17 ou 18 j'ai peut etre mal compté donc j'en ai déduie que les 9 dernières lignes devaient etre les fautives du coup j'ai enlevé 30 lignes à la fin du fichier de 2000 lignes et la il m'en manquait + de 30
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import javax.swing.JFrame; import javax.swing.JPanel; import com.htdsoft.action.ActionMain; import com.htdsoft.generic.Erreurs; public class Main { private static String ERROR_READ_FILE = "Erreur de lecture du fichier"; private static File fichier = new File("ressource/temp/test compta.csv"); public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run(){ BufferedReader in = null; try { in = new BufferedReader(new FileReader(fichier)); } catch (FileNotFoundException e) { Erreurs.Warning("Le fichier n'existe pas"); } try { traiteFichier(in); } catch (IOException e) { Erreurs.Warning(ERROR_READ_FILE); } } }); } private static void traiteFichier(BufferedReader in) throws IOException{ String ligne = ""; String derligne = ""; while ((ligne = in.readLine())!=null){ //traitement derligne = ligne; } System.out.println("Dernière ligne lecture : " + derligne); in.close(); enregistreLignes(null); } private static void enregistreLignes(Object[][] tabjaux) throws IOException{ BufferedReader in = new BufferedReader(new FileReader(fichier)); String ligne = ""; String derligne = ""; File fichier = new File("ressource/temp/fichierTempo.log"); FileWriter fos = new FileWriter(fichier); while ((ligne = in.readLine())!=null){ fos.write(ligne+"\r\n"); derligne = ligne; } System.out.println("Dernière ligne ecriture : " + derligne); } }... sur une certaines taille de fichier les lignes manquantes sont toujours constantes.
Au cas ou mais je ne pense pas que le problème vienne d'ici le fichier que j'importe est un fichier csv avec des \t comme séparateurs.
MERCI.
Partager