[java] remplacer une partie du texte

Fermé
jerome - 30 mars 2005 à 22:32
 haha - 11 août 2011 à 14:07
Bonjour,

comment faire pour remplacer une partie du texte située dans un fichier ?

Exemple :
le fichier "toto.txt" contient le mot "bonjour" que je souhaite remplacer par "bonsoir".
J'ai réussi à lire le texte ligne par ligne et à faire une recherche du mot "bonjour". Une fois ce mot trouvé, comment le remplacer ?
Faut-il créer un nouveau fichier et tout copier ? ou alors peut-on remplacer directement le texte sur le fichier existant ?

Merci d'avance,
Jérôme
A voir également:

6 réponses

télécharge le logiciel gratuit replacetext et tu pourras faire tout ce que tu voudras dans le genre.
Franck
3
mais lol...
0
Voici mon code :

/** je crée un flux entrant sur mon fichier */
BufferedReader in = new BufferedReader(new FileReader(fichier));

String ligne;
/** tant qu'il y a des lignes */
while ((ligne = in.readLine()) != null) {
/** je fais mon traitement */
}
1
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
31 mars 2005 à 11:36
Je ne connaissais pas ces objets!
Oublie ma remarque, c'est la manière la plus simple que tu as fait.

D'habitude, je passais par des FileInputStream et des FileOutputStream, c'est pour ça!
0
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
31 mars 2005 à 09:57
Bonjour!

Après avoir lu ta ligne, qu'en fais tu?
Je pense qu'il faut que tu récupère tout le contenu de ton fichier et que tu le modifies dans ton java. Après, tu écris dans le même fichier le contenu modifier.

0
bonjour,

je ne veux pas modifier tout le contenu mais seulement une partie.
Lorsque je lis une ligne, je recherche dans cette ligne le texte "bonjour".
2 cas se présentent :
- soit le texte n'y est pas et je passe à la ligne suivante.
- soit il y est et je veux le remplacer par "bonsoir" puis continuer la recherche.

Mon problème est de transformer "bonjour" en "bonsoir".
Quelle est la syntaxe pour réécrire exactement à la place du mot "bonjour" (je pense qu'il faut d'abord supprimer le mot puis écrire mais je n'y arrive pas) ?

J'espère avoir été plus clair.
Merci d'avance.
0
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
31 mars 2005 à 10:55
Tu utilise la class String?

Et bien, dans la javadoc, j'ai trouvé ça:
public String replaceAll(String regex,
                         String replacement)

    Replaces each substring of this string that matches the given regular expression with the given replacement.

    An invocation of this method of the form str.replaceAll(regex, repl) yields exactly the same result as the expression 
--

Maily
Ragondin, va au coin!
0
jerome > maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023
31 mars 2005 à 11:02
Merci beaucoup !
je crois que ca devrait aller avec ca.
je savais que j'avais déjà vu quelque chose de ce genre là mais je n'ai pas pensé à regarder dans la classe String !

a+
jerome
0
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453 > maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023
31 mars 2005 à 11:04
Sincèrement, pour aller plus vite et éviter de lire ligne par ligne, ce qui est assez couteux, récupère tout, fait un replaceAll et réinsère le tout!
:)
0
Qu'appelles-tu "récupérer tout" ?
comment je fais exactement à partir d'unfichier sur mon disque dur ?

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
31 mars 2005 à 11:28
Qu'utilise tu comme objet pour lire ligne par ligne ton fichier?
0
en fait, FileReader et FileWriter , c'est la même chose que FileInputStream et FileOutputStream mais c'est un peu plus simple à gérer lorsqu'on traite des flux de caractères.

Merci de ton aide en tout cas.
0