带扫描仪的读取行
编辑进一步的读者:问题是我的输入文件已损坏。
我不明白我做错了什么:
我正在使用这个代码:
File f = new File("C:\\Temp\\dico.txt");
BufferedReader r = null;
try {
r = new BufferedReader(new FileReader(f));
String scan;
while((scan=r.readLine())!=null) {
if(scan.length()==0) {continue;}
//treatment
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Lexique.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Lexique.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if(r!=null) try {
r.close();
} catch (IOException ex) {
Logger.getLogger(Lexique.class.getName()).log(Level.SEVERE, null, ex);
}
}
这很好。现在,出于某种原因,我想换一个扫描仪。我的代码变成了:
File f = new File("C:\\Temp\\dico.txt");
Scanner r = null;
try {
r = new Scanner(f);
String scan;
while(r.hasNextLine()) {
scan = r.nextLine();
if(scan.length()==0) {continue;}
//treatment
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Lexique.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Lexique.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if(r!=null) r.close();
}
这一次,我们从不输入 while,因为 r.hasNextLine() 总是返回 “false”。关于我做错了什么的任何想法?
我精确地说,没有其他更改,文件仍然相同。
编辑:我也精确地指出,我尝试了另一个文件并得到了相同的结果,这意味着它显然不是来自该文件。
该文件如下所示:
a
à
abaissa
abaissable
abaissables
abaissai
abaissaient
abaissais
abaissait
...
编辑 2 :文件的内容似乎有问题,因为只有当我将内容从文件复制/粘贴到另一个文件时,问题仍然存在。显然,如果我自己编写内容,它可以工作,如果我使用我的dico.txt文件的一部分内容,它就不起作用。任何解释?
编辑 3 :这些是指向我的文件的链接。我建议你避免使用dico.txt这是非常巨大的。
迪科.txt : https://drive.google.com/file/d/0B0sroFy9HZlBNDl3MUwzVnh6VU0/edit?usp=sharing
测试.txt : https://drive.google.com/file/d/0B0sroFy9HZlBemZjbXU1RmlmdjQ/edit?usp=sharing