Bonjour tout le monde,
Je recherche une partie de phrase dans un fichier txt.
Si cette partie de phrase existe, i est incrémenté de 1 autrement i ne bouge pas.
Si i est supérieur à -1, une méthode est appelée et je lui donne en argument le File, le FileReader et le BufferedReader.
Etrangement, quand je lui passe les arguments, la méthode ne me donne pas le résultat voulu, c'est à dire que la méthode ne lit pas lignes du fichier txt dans la boucle while par contre, quand je déclare à nouveau le file, le fr et le br dans ma nouvelle méthode, le résultat est correcte, la boucle while lit les lignes du txt, on dirait que les références du fichiers txt ne sont pas envoyées avec l'appel de la méthode sauriez-vous me dire ce qu'il se passe ?
Je vous laisse premièrement mon code en donnant les arguments, ensuite le code sans les arguments.
C'est vraiment important pour moi de comprendre car j'ai un examen de passage en août.
Merci d'avance pour votre aide.
beegees
Code en envoyant les arguments à la méthode (ça ne fonctionne pas):
code sans les arguments, je les crée dans la nouvelle méthode (et ça fonctionne)
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 import java.io.*; public class bidon { public static void main (String [] args) throws IOException { File f = new File("c:\\bidon.txt"); FileReader fr = new FileReader(f); BufferedReader br = new BufferedReader(fr); String aRechercher = "SET PATH"; String ligne = ""; int i=-1; while ((ligne=br.readLine())!=null) { System.out.println(ligne); if(ligne.indexOf(aRechercher)!=-1) { //System.out.println("ligne.indexOf(aRechercher vaut " + ligne.indexOf(aRechercher)); System.out.println("trouve !"); i++; System.out.println("i vaut " + i); } } if (i>-1) { ajouterMot(f,fr,br); } } public static void ajouterMot(File f, FileReader fr, BufferedReader br)throws IOException { File f2 = new File("c:\\bidon2.txt"); FileWriter fw = new FileWriter(f2); BufferedWriter bw = new BufferedWriter(fw); String aRechercher = "SET PATH"; String ligne = ""; int i=0; while ((ligne = br.readLine())!=null) { System.out.println("ligne vaut "+ligne); i++; if (ligne.indexOf(aRechercher)!=-1) { ligne+= "bidon;"; bw.write(ligne); bw.newLine(); } else { bw.write(ligne); bw.newLine(); } } System.out.println("i vaut " + i); bw.close(); } }
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139 import java.io.*; public class bidon { public static void main (String [] args) throws IOException { File f = new File("c:\\bidon.txt"); FileReader fr = new FileReader(f); BufferedReader br = new BufferedReader(fr); String aRechercher = "SET PATH"; String ligne = ""; int i=-1; while ((ligne=br.readLine())!=null) { System.out.println(ligne); if(ligne.indexOf(aRechercher)!=-1) { //System.out.println("ligne.indexOf(aRechercher vaut " + ligne.indexOf(aRechercher)); System.out.println("trouve !"); i++; System.out.println("i vaut " + i); } } if (i>-1) { ajouterMot(); } } public static void ajouterMot()throws IOException { File f = new File("c:\\bidon.txt"); FileReader fr = new FileReader(f); BufferedReader br = new BufferedReader(fr); File f2 = new File("c:\\bidon2.txt"); FileWriter fw = new FileWriter(f2); BufferedWriter bw = new BufferedWriter(fw); String aRechercher = "SET PATH"; String ligne = ""; int i=0; while ((ligne = br.readLine())!=null) { System.out.println("ligne vaut "+ligne); i++; if (ligne.indexOf(aRechercher)!=-1) { ligne+= ";c:\bidon;"; bw.write(ligne); bw.newLine(); } else { bw.write(ligne); bw.newLine(); } } System.out.println("i vaut " + i); bw.close(); } }
Partager