Aidez moi, Debutante JAVA!!!

Bonjour,

Je veux balayer un fichier.txt a la recherche d'une chaine de caracteres, puis remplacer celle a par autre chose.
Comment faire SVP?????????

Merci d'avance

4 réponses

  1. tu peux lire le fichier et le charger en mémoire dans un String puis appliquer Substring et réecrire le ficheir mais attention à la taille du fichier
    1. Voilà une solution possible, Nathalie:

      import java.io.*;

      /**
      *
      * @author HackTrack
      * @version 1.0
      */
      public class Tester extends Object {

      /** Creates new Tester */
      public Tester() {
      }

      /**
      * @param args the command line arguments
      */
      public static void main (String args[]) {
      try{
      // Pour tester ceci, crée un petit fichier texte que tu enregistres dans c:\
      // et appelles-le "test.txt". Ecris-y le texte suivant:
      // "Ceci est un petit fichier qui va servir de test"
      //Une fois que tu auras lancé cette classe, le résultat sera stocké dans le fichier:
      //"C:\test2.txt"
      File f = new File("C:/test.txt");
      BufferedReader br= new BufferedReader(new FileReader(f));
      StringBuffer datas = new StringBuffer();
      String line;
      while((line = br.readLine())!= null){
      datas.append(line);
      }

      //La chaîne à remplacer
      String toReplace = "servir de";
      //La chaîne de remplacement
      String replaceBy="subir un";
      String search;
      for(int i=0 ; i<datas.length()-toReplace.length() ; i++){
      search = datas.substring(i, i+toReplace.length());
      System.out.println(search);
      if(search.equals(toReplace)){
      datas.replace(i,i+toReplace.length(), replaceBy);
      }
      }
      System.out.println(datas);
      File f2= new File("C:/test2.txt");
      BufferedWriter bw = new BufferedWriter(new FileWriter(f2));
      bw.write(datas.toString());
      bw.flush();
      bw.close();
      System.out.println("Terminé!");

      }catch(FileNotFoundException fnfe){
      }catch(IOException ioe){
      }
      }
      }