[Java] Réécriture dans un fichier texte

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. 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
    1. 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
      1. 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. 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
      2. OK merci je vais tester ca et je te dis si ca fonctionne.

        a+
        jerome
        1
        1. 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

          Discussions similaires

          question pix mot caché

          7 réponses