Java - 在解析ZipInputStream时获取OutOfMemoryError

时间:2016-10-22 16:58:28

标签: java json zip out-of-memory zipinputstream

我在阅读从网络服务中检索到的zip文件的内容时遇到问题。

zip文件存储在名为bytes的字节数组中,如下面的代码所示。

ZipInputStream zis = new ZipInputStream(new ByteArrayInputStream(bytes.get()));
String rawJson = IOUtils.toString(zis);

当我执行IOUtils.toString(zis)时,我得到 OutOfMemoryError:Java堆空间

我很担心问题是由zip中包含的json文件的尺寸引起的,大于150MB。我尝试过其他较小的文件,我可以毫无问题地获取json内容。

有没有办法读取zip的内容而不将其存储在内存中?

修改 我知道我可以增加堆内存,但我正在寻找基于代码的解决方案,因为它可以在任何环境中工作。

1 个答案:

答案 0 :(得分:0)

如果您正在使用IDE,请尝试执行此操作

Run Configuration > Arguments > -Xmx7048m

增加编译的最大ram