Я читаю содержимое из файлов каталога. Я должен отделить файлы в соответствии с их именами, а затем прочитать их содержимое. Когда я запускаю код просто, не читая содержимое, все файлы перечисляются в определенном имени файла, но когда я пытаюсь прочитать содержимое, он считывает содержимое из нескольких файлов, на самом деле всего 10 из них. Но каталог содержит около 1000 файлов определенного имени. Я размещаю код здесь.что с этим кодом?
for (i = 0; i <= filenames.length; i++) {
read = new FileReader("trainfiles/"+filenames[i]);
br = new BufferedReader(read);
if (filenames[i].matches(".*ham.*")) {
System.out.println("ham:" + filenames[i]);
while ((lines = br.readLine()) != null) {
st = new StringTokenizer(lines);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
}
br.close();
}
}
Может ли кто-нибудь сказать мне, где я делаю неправильно !?
благодаря
EDIT # 1 я сделал некоторые изменения, которые я рассказал здесь, но проблема все еще сохраняется, вот код.
for(i=0;i<=filenames.length;i++){
read = new FileReader("trainfiles/"+filenames[i]);
br = new BufferedReader(read);
if(filenames[i].matches(".*ham.*")){
System.out.println("ham:"+filenames[i]);
while((lines = br.readLine())!= null){
st = new StringTokenizer(lines);
while(st.hasMoreTokens()){
System.out.println(st.nextToken());
}
}
}
br.close();
read.close();
}
EDIT # 2 Теперь код выглядит так, но опять-таки ... его не давая мне результат я хочу.
for (i = 0; i < filenames.length; i++) {
try {
if (filenames[i].matches(".*ham.*")) {
read = new FileReader("trainfiles/"+filenames[i]);
br = new BufferedReader(read);
System.out.println("ham:" + filenames[i]);
while ((lines = br.readLine()) != null) {
st = new StringTokenizer(lines);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
}
}
} finally {
read.close();
br.close();
}
}
нет есть некоторые файлы, имена которых является spam.txt, я просто ищу слова ветчины и спам и читать там содержание .. есть в общих сложности 2450 файлов .. – Maverick
уверен Вы не все файлы читаются? Попробуйте распечатать имена файлов до цикла. – javamonkey79
Да, он печатает все файлы, когда я просто печатаю его, но когда я пишу код, чтобы прочитать его ... он не может дать точный результат. – Maverick