0
我使用下面的代码并获得Java的内存不足的错误读取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堆空间的问题仍然存在。
我甚至将我的文件更改为普通文本文件,并向该文件添加了一行样本,但问题仍然存在。
可能的重复https://stackoverflow.com/questions/37335/how-to-deal-with-java-lang-outofmemoryerror-java-heap-space-error-64mb-heap – Lokesh
不,对于上述问题文件的大小是巨大的。但在我的情况下,我甚至现在用2行文件尝试。它只是读取第一行并抛出此错误 –
你检查了Jiri的答案? – Lokesh