2017-03-27 1 views
1

Je veux remplacer un mot d'un fichier txt dans java. J'ai déjà mon expression régulière et la méthode pour lire le fichier txt à partir de Java. Mais je n'ai aucune idée de comment remplacer un mot à l'aide de l'expression mu regualar.Comment remplacer un mot du fichier txt par une expression régulière dans java

Une suggestion ou un exemple?

+0

Peut-être ce fil http://stackoverflow.com/questions/632204/java-string-replace- using-regular-expressions vous aidera? –

+0

Vous pouvez utiliser regex pour modifier les chaînes, pas les fichiers. Vous avez besoin d'autres outils pour lire le texte du fichier et le convertir en chaîne, puis appliquer regex, puis stocker la chaîne dans le fichier. Vous avez donc besoin de lecteurs appropriés pour lire le texte à partir d'un fichier et d'écrivains pour écrire du texte dans un fichier. – Pshemo

+0

Copie possible de [Rechercher et remplacer des mots dans un fichier texte en utilisant java] (http://stackoverflow.com/questions/29056132/find-and-replace-words-in-a-text-file-using-java) – Seymore

Répondre

0

Parcourez le fichier en une seule chaîne. Remplacez ensuite toutes les occurrences de mot par un nouveau mot.

String response = "test string".replaceAll("regex here", "new text"); 

ensuite écrire le nouveau texte dans un fichier

FileWriter writer = new FileWriter("out.txt"); 
writer.write(response); 
2
public class BTest 
{ 
public static void main(String args[]) 
    { 
    try 
     { 
     File file = new File("file.txt"); 
     BufferedReader reader = new BufferedReader(new FileReader(file)); 
     String line = "", oldtext = ""; 
     while((line = reader.readLine()) != null) 
      { 
      oldtext += line + "\r\n"; 
     } 
     reader.close(); 
     // replace a word in a file 
     String newtext = oldtext.replaceAll("drink", "Love"); 

     //To replace a line in a file 
     //String newtext = oldtext.replaceAll("This is test string 20000", "blah blah blah"); 

     FileWriter writer = new FileWriter("file.txt"); 
     writer.write(newtext);writer.close(); 
    } 
    catch (IOException ioe) 
     { 
     ioe.printStackTrace(); 
    } 
} 

}

+2

Merci de ne pas utiliser 'Strings' pour ça. Il a ** terrible ** performance, en particulier pour les gros fichiers. Utilisez StringBuilder au moins. –

+0

Oui, vous pouvez utiliser Stringbuilder au lieu de chaîne où la taille du fichier dépasse. –