【发布时间】:2014-01-04 18:32:13
【问题描述】:
我尝试读取超过 400 万行且大小超过 400 MB 的日志文件,但我得到 Out of Memory Error : java heap space。这是我的代码:
File file = new File("C:\\file.log");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
StringBuilder stringBuffer = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuffer.append(line);
}
我尝试将堆内存增加到 1GB,但仍然收到该消息。可能的原因是什么?
【问题讨论】:
-
不要将整个文件存储在 StringBuffer 中...您要对文件内容做什么?
-
@ElliottFrisch 如果他增加到 1GB 并且文件只有 400MB - 它还会失败吗?
-
@ElliottFrisch :我尝试用特定参数拆分它
-
用什么参数分割。分裂的部分怎么办?
-
@user2310289 显然。
标签: java heap-memory