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.
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 ;-) –