car*_*oud 6 java exception out-of-memory readline
我想从一个巨大的文本文件(超过600 000 MB)打印每一行.
但是当我尝试下面的代码时,我会在到达第1 000 000行之前得到"... OutOfMemoryError:Java堆空间".
有没有更好的方法来处理输入而不是FileReader和LineNumberReader?
FileReader fReader = new FileReader(new File("C:/huge_file.txt"));
LineNumberReader lnReader = new LineNumberReader(fReader);
String line = "";
while ((line = lnReader.readLine()) != null) {
System.out.println(lnReader.getLineNumber() + ": " + line);
}
fReader.close();
lnReader.close();
Run Code Online (Sandbox Code Playgroud)
提前致谢!
谢谢大家的回答!
我终于找到了内存泄漏,一个未使用的java类实例,它为每次迭代重复了一次.换句话说,它与文件加载部分无关.
小智 0
也许您应该尝试设置 Java 虚拟机的最大堆大小?或者检查此链接:
http://www.techrepublic.com/article/handling-large-data-files-efficiently-with-java/1046714