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

Langage Java Discussion :

Ecriture dans un fichier sous condition


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 100
    Points : 44
    Points
    44
    Par défaut Ecriture dans un fichier sous condition
    Bonjour,

    J'écris dans un fichier de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     PrintWriter ecrivain = null;        
    ecrivain =  new PrintWriter(new BufferedWriter(new FileWriter("fichier.txt",false)));
    ecrivain.println(blablabla + " " + id);
    ecrivain.close();
    mon fichier.txt se présente de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    blablabla 1
    blablabla 2
    blablabla 3
    ...
    à chaque fois que j'écris dans ce fichier, je voudrais pouvoir effacer que la ligne qui comporte le meme id.

    Ex si je veux écrire dans le fichier.txt : blablablablabla 2. Alors la ligne du fichier.txt : blablabla 2 doit être remplacé par blablablabla 2 et les autres lignes doivent être conservées.

    Pour le moment dans mon code, toutes les lignes sont remplacées.
    Comment dois je m'y prendre ?
    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    Bonjour,

    java ne faisant pas le remplcement de ligne dans un fichier. il faut :

    1 - creer un fichier temporaire
    2 - lire le fichier
    3 - pour chaque ligne.
    3 - 1 si la ligne ne termine pas par "2" on la recopie dans le fichier temporaire.
    3 - 2 si la ligne termine par "2" on ecrit la nouvelle ligne dans le fichier temporaire.
    3 - 3 si à la fin du traitement aucune ligne n'est terminé par "2" on ecrit à la fin fichier temporaire .
    4 - on remplace le fichier par le fichier temporaire.

  3. #3
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Effectivement, pas moyen de faire autrement, enfin c'est la méthode la plus simple. Je suis en train de développer une classe permettant de faire ça de manière optimisée ( mémoire + IO ), tu peux peut-être t'en inspirer si t'es motivé : http://www.developpez.net/forums/sho...d.php?t=355004

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 100
    Points : 44
    Points
    44
    Par défaut
    Merci pour vos réponses. Tout cela me semble bien compliqué.

    Je me demande si je ne vais créer un fichier différent pour chaque id. Ca sera plus simple.

    Est il possible de faire cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      ecrivain =  new PrintWriter(new BufferedWriter(new FileWriter("fichier_"+id".txt",false)));
    ca me met une erreur mais c'est peut etre seulement un problème de syntaxe.

    Merci

  5. #5
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Salut,

    Pour l'erreur, tu as juste oublier de mettre un '+' après id.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      ecrivain =  new PrintWriter(new BufferedWriter(new FileWriter("fichier_"+id+".txt",false)));
    Sinon, tu peux jeter un coup d'oeil à cet article histoire de te familiarisé un peu plus avec java.io

    @+

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 100
    Points : 44
    Points
    44
    Par défaut
    Génial
    Merci

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

Discussions similaires

  1. [XL-2010] Copie des valeurs d'une colonne dans un autre fichier sous condition
    Par Fred_rt dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 18/03/2015, 12h50
  2. Réponses: 4
    Dernier message: 24/10/2011, 18h14
  3. [XL-2003] Rechercher et ouvrir un fichier dans un dossier sous condition
    Par volubiliss dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 20/09/2011, 16h41
  4. [Lazarus] Ecriture dans un fichier sous Linux
    Par load.exe dans le forum Lazarus
    Réponses: 20
    Dernier message: 01/02/2008, 16h49
  5. Ecriture dans un fichier sous Oracle
    Par 18Marie dans le forum Oracle
    Réponses: 4
    Dernier message: 06/03/2007, 18h02

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