[Java] Réécriture dans un fichier texte

jerome -  
 lily_bg -
Bonjour,

je souhaite lire un fichier texte ligne à ligne, puis transformer chacune de ces lignes (en remplacant des mots) puis tout réécrire dans le fichier de départ (les nouvelles lignes remplacent les anciennes).

J'ai réussi à lire et à transformer les lignes, mais je n'arrive pas à réécrire la ligne à son ancienne place.
Les méthodes write() ne permettent pas de sélectionner la ligne où l'on souhaite écrire.

Pourriez-vous m'aider ?
Merci d'avance
Configuration: j2sdk 1.4.2

5 réponses

  1. jerome
     
    OK ca marche ! merci.
    j'ai encore une question mais je vais la poser dans un autre message pour clore celui-ci.
    (ma question concerne la methode replaceAll)
    2
  2. Satrialien Messages postés 52 Statut Membre 13
     
    Rebonjour ;)

    si ton fichier n'est pas trop gros, tu peux faire la chose suivante :
    - tu ouvres ton fichier texte en lecture
    - tu lis ligne par ligne et stocke chaque ligne lue dans une ArrayList (ou un Vector, HashMap...)
    - tu fermes ton fichier
    - tu parcours ton vecteur et tu modifies chaque ligne
    - tu ouvres ton fichier texte en écriture (ça va effacer directement le contenu)
    - tu reparcoures ton tableau de lignes et tu écris chaque ligne dans le fichier
    - tu fermes ton fichier texte.

    Si ton fichier contient des millions de lignes, ça peut faire beaucoup à stocker dans une liste...

    Aurélien
    1
  3. jerome
     
    bonjour et merci de ta réponse.

    Quand tu dis 'ouvrir en lecture', c bon si j'écris ca :
    BufferedReader in = new BufferedReader(new FileReader(fichier));

    et en écriture :
    BufferedWriter out = new BufferedWriter(new FileWriter(fichier));

    ?
    merci
    1
    1. Satrialien Messages postés 52 Statut Membre 13
       
      wai avec des BufferedReader et BufferedWriter

      code avec le BufferedWriter :

      import java.io.BufferedWriter;
      import java.io.FileNotFoundException;
      import java.io.FileWriter;
      import java.io.IOException;


      public class Test2
      {

      public static void main(String[] args)
      {
      try
      {
      BufferedWriter out = new BufferedWriter(new FileWriter("c:\\test.txt"));
      String s = "bonjour";
      out.write(s);
      out.newLine();
      s = "tout le monde";
      out.write(s);
      out.close();
      }
      catch (FileNotFoundException e)
      {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      catch (IOException e)
      {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }

      }


      }
      0
  4. jerome
     
    OK merci je vais tester ca et je te dis si ca fonctionne.

    a+
    jerome
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lily_bg
     
    Bonjour,

    je souhaite lire une classe java ligne par ligne, chercher les lignes qui contient JTextField et les mettre dans une liste, ensuite parcourir à nouveau cette liste.
    Finalement, chercher dans la liste la ligne :SetBounds(x,y,width,hight) et la modifier en forçant height à 20 pixels.

    Pourriez-vous m'aider ?
    Merci d'avance
    0