【发布时间】:2013-11-06 13:46:29
【问题描述】:
出于学习目的,我正在使用 Scanner 类,我使用它来读取一个非常大的文件(大约 60.000 行)而不使用 Reader 类,它在大约 400 行后停止读取。我必须在 Scanner 的构造函数中使用 Bufferedreader 还是问题出在其他地方?我想知道为什么会这样。谢谢。 我的代码是输出所有行的常用代码。
File file1 = new File("file1");
Scanner in= new Scanner(file1);
while (scan.hasNextLine() ) {
String str = scan.nextLine();
System.out.println(str);
}
【问题讨论】:
-
400 行之后有什么异常吗?你检查内存消耗了吗?
-
在大文件上我建议你使用缓冲类..因为性能差异真的很大..
-
可能是控制台没有输出所有行并截断了一些行。你在使用 BlueJ 吗?
-
不,我正在使用 Eclipse。
-
我今天遇到了同样的事情,文件有 25000 行。我切换到 BufferedReader 并且效果很好。我也有一台 64 位机器。