【发布时间】:2016-03-28 04:15:51
【问题描述】:
您好,我使用以下代码
public class Readfiles {
FileInputStream fr;
public void readAll(){
try {
fr = new FileInputStream(new File("books/Artificial intelligence.txt"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("File Not Found");
e.printStackTrace();
}
CharsetDecoder decoder = Charset.forName("UTF-8").newDecoder();
decoder.onMalformedInput(CodingErrorAction.IGNORE);
InputStreamReader reader = new InputStreamReader(fr, decoder);
BufferedReader br = new BufferedReader(reader);
try {
int i = 0;
for(String newLine; (newLine = br.readLine()) != null; )
{
newLine = br.readLine();
i++;
System.out.println(newLine);
}
br.close();
System.out.println(i);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
要读取这个 txt 文件,它大约有 420.000 行: Artificial intelligence.txt
但我上面的代码没有正确读取它,中间缺少大约一半的行,并且似乎从任何地方开始(每个随机开始)以下是 SYSOut 的可能结果之一:强>
只有第一行:
#@Margaret H. Szymanski,Paul M. Aoki,Rebecca E. Grinter,Amy Hurst,James D. Thornton,Allison Woodruff
#cComputer Supported Cooperative Work
#%5488
#%87739
#%257074
#%818174
#!
#*Unpacking Tasks: The Fusion of New Technology with Instructional Work.
#t2008
#index831790
#%174882
#!
所以问题是为什么?
i 的打印输出始终为 209647。
【问题讨论】:
-
哦,你是对的愚蠢的失败,谢谢它已修复!
标签: java filereader