2016-10-22 6 views
0

Ich habe ein Problem beim Lesen des Inhalts einer Zip-Datei, die von einem Webservice abgerufen wurde.Java - Abrufen eines OutOfMemoryError beim Analysieren eines ZipInputStreams

Die Zip-Datei wird in einem Byte-Array mit der Bezeichnung bytes gespeichert, wie Sie im folgenden Code sehen können.

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

Wenn ich ausführen IOUtils.toString(zis) Ich erhalte eine OutOfMemoryError: Java Heap-Speicher.

Ich bin mir sicher, dass das Problem durch die Dimension der JSON-Datei in der Zip-Datei verursacht wird, ist größer als 150 MB. Ich habe es mit anderen kleineren Dateien versucht und ich kann den JSON-Inhalt ohne Probleme bekommen.

Gibt es eine Möglichkeit, den Inhalt der ZIP zu lesen, ohne sie im Speicher zu speichern?

EDIT: Ich weiß, dass ich meinen Heap-Speicher erhöhen könnte, aber ich bin auf der Suche nach einer Code-basierten Lösung, weil es auf jeder Umgebung arbeiten woud.

Antwort

0

Wenn u IDE verwenden, dann versuchen Sie diese

Run Configuration > Arguments > -Xmx7048m 

Erhöhung des maximalen RAM zu tun, um zu kompilieren

+0

Dies ist eine Lösung sein könnte, aber mein Code auf Umgebungen laufen kann ich konnte nicht so kontrollieren I bin auf der Suche nach einer allgemeineren und Code-basierten Lösung. Danke übrigens ;-) –

Verwandte Themen