2016-10-22 4 views
0

Webサービスから取得したzipファイルの内容を読み込む際に問題があります。Java - ZipInputStreamの解析中にOutOfMemoryErrorを取得する

zipファイルは、bytesというバイト配列に格納されています(下のコードを参照)。 Javaヒープスペース:

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

私はIOUtils.toString(zis)を実行

私は OutOfMemoryErrorが発生し得ます。

問題は、ジップに含まれているjsonファイルのディメンションによって引き起こされ、150MBを超えています。他の小さなファイルで試してみましたが、問題なくjsonのコンテンツを取得できます。

ジップの内容をメモリに保存せずに読み取る方法はありますか?

EDIT: 私はそれがどのような環境で作業woudので、私は私のヒープメモリを増やすことができますが、私は、コードベースのソリューションを探していますことを知っています。

答えて

0

uはIDEを使用している場合は、この

Run Configuration > Arguments > -Xmx7048m 

をやろうこれは解決策になる可能性がありますが、私のコードは、環境上で実行することができ

+0

をコンパイルする最大ラムを増やす私はので、私をcontrollことができませんでしたより一般的でコードベースのソリューションを探しています。 途中でありがとうございました;-) –

関連する問題