0

我在读取从 Web 服务检索到的 zip 文件的内容时遇到问题。

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

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

当我执行时,IOUtils.toString(zis)我得到一个OutOfMemoryError: Java heap space

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

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

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

4

1 回答 1

0

如果您使用的是 IDE,请尝试执行此操作

Run Configuration > Arguments > -Xmx7048m

增加要编译的最大内存

于 2016-10-22T17:04:17.943 回答