【发布时间】:2018-03-07 14:00:30
【问题描述】:
我正在使用以下代码读取 JSON 文件,并出现 java 内存不足错误:
BufferedReader br1 = new BufferedReader(new FileReader(filename));
try {
StringBuilder sb = new StringBuilder();
String line = br1.readLine();
while (line != null) {
sb.append(line);
}
result = sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
我得到以下错误:
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3332)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)
at java.lang.StringBuilder.append(StringBuilder.java:136)
后来我意识到有缓冲阅读器资源泄漏的警告
所以我添加了代码br1.close(); 并解决了警告。但是java堆空间的问题就卡住了。
我什至将我的文件更改为普通文本文件,并且只在文件中添加了一个示例行,但问题仍然存在。
【问题讨论】:
-
不,对于上述问题,文件大小很大。但就我而言,我什至现在尝试使用 2 行文件。它只是读取第一行并抛出此错误
-
你检查Jiri的答案了吗?
标签: java file memory-leaks out-of-memory heap-memory