Bonjour,
J'aimerais savoir comment insérer une ou plusieurs lignes de texte dans un fichier texte. Je n'arrive pas à comprendre entre BufferedStreamReader, InputStreamReader, OutputStreamReader, FileReader, FileWriter, etc...
Merci d'avance,
Slax
Bonjour,
J'aimerais savoir comment insérer une ou plusieurs lignes de texte dans un fichier texte. Je n'arrive pas à comprendre entre BufferedStreamReader, InputStreamReader, OutputStreamReader, FileReader, FileWriter, etc...
Merci d'avance,
Slax
Lis déjà ça :
http://anisfrikha.developpez.com/tutoriel/java-io/
Le plus simple serait peut-être un Printwriter
Voici un exemple rapidement fait donc pas forcément bien programmé :
(ajoute une ligne à la fin d'un fichier nommé test.txt)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.PrintWriter; public class TestPrintWriter { public static void main(String args[]) throws Exception { File source = new File("test.txt"); File dest = new File("tmp.txt"); BufferedReader br = new BufferedReader(new FileReader(source)); PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(dest))); String line; while((line = br.readLine())!=null) pw.println(line); pw.append("ligne ajoutee"); br.close(); pw.close(); source.delete(); dest.renameTo(source); } }
Merci beaucoup, je comprends un peu mieux.
Et pour insérer une ligne à un endroit déterminé d'un fichier texte, que faut-il faire ? Arrêter la lecture lorsqu'on arrive à l'endroit désiré, insérer la ligne, et réécrire la fin du fichier initial à la fin ?
Merci d'avance
Ba il suffit de faire un compteur avant la boucle et une fois le numéro de ligne atteint insérer![]()
Ok, c'est une solution en effet, mais (désolé, j'suis un peu chiant) si ce n'est pas à une ligne déterminée, mais par exemple après un mot déterminé, qui peut se trouver un peu n'importe où dans le fichier texte, et on n'est pas sensé savoir où il est. Y a-t-il moyen par exemple de faire un truc du genre
while ((line = br.readLine()) != triggerWord) {
pw.println(line);
}
[garder en memoire la position]
pw.append("j'ai envie de rajouter ça just après triggerWord");
[reprendre depuis la position]
while ((line = br.readLine()) != null) {
pw.println(line);
}
Ce code n'est pas correct du tout, mais il me sert juste à comprendre... du coup, je ne sais pas si c'est très compréhensible... Mais est-ce qu'il y a un moyen de le faire ? Merci d'avance en tout cas
ba tu fais
voire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if(line.equals(triggerWord)) pw.print("j'ai envie de rajouter ça just après triggerWord");
à l'intérieur de la boucle, ça devrait marcher
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if(line.contains(triggerWord)) pw.print("j'ai envie de rajouter ça just après triggerWord");
ou si vraiment tu veux mettre un truc juste après le mot tu fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 String s = line.replace(triggerWord,triggerWord+"j'ai envie de rajouter ça just après triggerWord"); pw.print(s);
Partager