Bonjour,

donc mon programme parcours un répertoire et récupere le fichier txt du jour
a partir de ce fichier txt je dois créer un fichier csv avec certaines données du fichier txt

pour la 1ere partie parcourir le repertoire et recuperer le nom du fichier txt c'est ok

ensuite je lis une 1ere fois le fichier txt pour compter le nb ligne qui contient un mot particulier pas toutes les lignes sont concernés et en suite ecrire l'entete de mon csv avec le compteur c'est ok ca fonctionne

ensuite lis une 2eme fois mon fichier txt pour ecrire les lignes que je veux dans mon fichier csv mon la j'ai un soucis

j'ai le message suivant :


unreported exception java.io.IOException; must be caught or declared to be thrown
ligne2=tampon2.readLine();

pourtant justement j'ai utilisé 2 filereader et 2 tampons

je ne comprends pourquoi j'ai cette erreur

mon code:



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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
 
 
 
import java.io.*;
import java.util.*;
import java.text.*;
import java.lang.*;
 
public class MyProgCSV {
 
public static String namecsvfile="";   
 
 
public static void main(String args[]){//void main
 
//--------------------------------variables--------------------------------------------------------//
//----variables part1-----------------------------//
String mytxtfolder="X:\\Sjs\\prd\\rprts";
String mytxtfile="";
String filename;
 
int i=0;
int mycounter=0;
long timestamp;
Date mytimestamp;
Locale locale;
DateFormat dateFormat;
GregorianCalendar todaydate;
Date mycurrentdate;
String date1;
String date2;
 
//-----variables part2--------------------------//
FileReader monfichier=null;
BufferedReader tampon=null;
 
FileReader monfichier2=null;
BufferedReader tampon2=null;
 
String mycsvfolder="D:\\";
 
 
String ligne;
String ligne2;
String eder;
String edera;
String ederb;
String eder1;
String eder2;
String OrigFileNamea;
String ligne1csv;
String ligne2csv;
String ligne3csv;
String noticeid;
String noticeid1;
String noticeid2;
String mytype;
String pubdate;
String OrigLang;
String OrigFilename;
String pathtempcsv=mycsvfolder+"\\myfile.csv";
Write mywriter=new Write();
 
 
int j=0;
int k=0;
int counter=0;
 
 
//------------------------------------------------------------------------------------------------//    
 
//------part1-------debut parcourir le repertoire et trouve le fichier du jour-------------------------//    
try{//try1
 
File myrep = new File(mytxtfolder);
 
FileFilter filefilter=new FileFilter(){
public boolean accept(File file){
return file.isFile();
}
};
 
File[] mylistfiles=myrep.listFiles(filefilter);
 
    if(mylistfiles==null){//if1 
 
    System.out.println("rep n existe pas");
 
    }else{
            for(i=0;i<mylistfiles.length;i++){//for1
 
 
            if(mylistfiles[i].isFile()){//if2
 
            timestamp=mylistfiles[i].lastModified();
            mytimestamp=new Date(timestamp);                        
            locale=Locale.getDefault();
            dateFormat=DateFormat.getDateInstance(DateFormat.SHORT, locale);            
            todaydate=new GregorianCalendar();
            mycurrentdate=todaydate.getTime();
 
            date1=dateFormat.format(mytimestamp);
            date2=dateFormat.format(mycurrentdate);
 
 
            if (date1.compareTo(date2)==0){//if3
 
            filename=mylistfiles[i].toString();            
            mytxtfile=filename;           
 
            mycounter=mycounter++;    
 
            if(mycounter>1){//if4          
            i=mylistfiles.length;
            }//if4              
            }//if3            
            }//if2
            }//for1
    }//if1
 
}catch(Exception ioe){//try1
ioe.printStackTrace();    
}//try1    
 
//------part1-------fin parcourir le repertoire et trouve le fichier du jour-------------------------// 
//mon fichier a traite est :
System.out.println(mytxtfile);
 
//----part2---------debut creation du fichier csv----------------------------------------------------//    
 
//-------1)debut compteur -----//
 
try{//try2
 
    monfichier=new FileReader(mytxtfile);
    tampon=new BufferedReader(monfichier);
 
    monfichier2=new FileReader(mytxtfile);
    tampon2=new BufferedReader(monfichier2);
 
    while(true){//while1
 
        ligne=tampon.readLine(); 
		  //System.out.println(ligne); 
 
        if (ligne==null){ break;}
 
        String[] tab_str=ligne.split("\\|");
 
            if(j>2){//if5
            OrigFileNamea=tab_str[25];
            edera=OrigFileNamea.substring(50, 56);
            ederb=OrigFileNamea.substring(59,65);
 
                if(edera.equals("mytext")||ederb.equals("mytext")){//if6
                counter++;
                }//if6        
            }//if5 
				j++;   
    }//while1
}catch(Exception exception){//try2
    exception.printStackTrace();
}finally{//try2
    try{//try3
        tampon.close();
        monfichier.close();
 
    }catch(Exception exception1){//try3
    exception1.printStackTrace();
    }//try3    
}//try2
 
//-------1)fin compteur simap2-----//
//mon compteur simap2 est :
System.out.println(counter);
 
//-------2) debut creation fichier csv------------------------//
 
ligne1csv="### release: 0.1 (date: 30-jan-2006) ###";
ligne2csv="###  eder = mytext ### nbr of doc: "+counter+" ###";
ligne3csv="eder|Notice_ID|Pub|Doc Number|Lang";
 
mywriter.ecrire(ligne1csv+"\n", pathtempcsv);
mywriter.ecrire(ligne2csv+"\n", pathtempcsv);
mywriter.ecrire(ligne3csv+"\n", pathtempcsv);
 
while(true){//while2
 
       ligne2=tampon2.readLine(); 
       //System.out.println(ligne2); 
 
        if (ligne2==null){ break;}
 
        String[] tab_str2=ligne2.split("\\|");     
 
            if(k>2){//if7
 
            noticeid=tab_str2[0];
            pubdate=tab_str2[13];
            OrigLang=tab_str2[19];
            OrigFilename=tab_str2[25];
 
            //eder
            eder1=OrigFilename.substring(50, 56);
            eder2=OrigFilename.substring(59, 65);
 
             if(eder1.equals("mytext")||eder2.equals("mytext")){//if8
             eder="mytext";
             }//if8 
 
            //NoticeID      
 
            }//if7
 
}//while2
 
 
//-------2) fin creation fichier csv------------------------//
 
//-----part2--------fin creation du fichier csv----------------------------------------------------// 
}//void main
 
 
 
}//class MyProgCSV
 
 
class Write 
{ //class write
 
public void ecrire(String texte,String pathmyfile) 
{ //void ecrire
 
//String mypathfile ="d:\\myfile.csv"; 
 
try { //try1
FileWriter fw = new FileWriter(pathmyfile, true); 
 
BufferedWriter output = new BufferedWriter(fw); 
 
output.write(texte); 
 
output.flush(); 
 
output.close(); 
 
}catch(IOException ioe){//try1
System.out.println("erreur : " + ioe );
} //try1
 
} //void ecrire
 
} //class write

merci pour votre aide