IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[IO] lecture ecriture dans un fichier


Sujet :

Entrée/Sortie Java

  1. #1
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Points : 730
    Points
    730
    Par défaut [IO] lecture ecriture dans un fichier
    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 :

    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);
    	}
    }
    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 ... 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.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,



    Tu ne fermes pas tes flux

    Un peu de lecture : Tour d'horizon du package java.io

    De plus il faudrait revoir ta gestion des exceptions (si tu n'arrives pas à ouvrir le fichier tu le traites quand même )... et je ne comprend pas ce que vient faire ici EventQueue.invokeLater() !

    a++

  3. #3
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Points : 730
    Points
    730
    Par défaut
    Tu ne fermes pas tes flux
    Argghhh j'ai oublié le fos.close() à la fin de mon ecriture!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lecture/ecriture dans un fichier
    Par FraktaL dans le forum C#
    Réponses: 6
    Dernier message: 15/09/2008, 13h55
  2. Lecture ecriture dans un fichier .mat avec C++
    Par WELCOMSMAIL dans le forum MATLAB
    Réponses: 1
    Dernier message: 10/09/2007, 11h29
  3. probleme lecture ecriture dans des fichiers
    Par xman_genius dans le forum C
    Réponses: 9
    Dernier message: 16/01/2007, 19h50
  4. Lecture ecriture dans un fichier binaire
    Par laetous dans le forum C
    Réponses: 13
    Dernier message: 26/08/2006, 08h50
  5. ouverture/lecture/ecriture dans un fichier en mode binaire
    Par dirty_boy dans le forum Débuter
    Réponses: 2
    Dernier message: 15/03/2006, 08h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo