Java Zip

Hallo,

habe gestern ein kleines Programm geschrieben, dass mit Hilfe der Javabibliothek „java.util.zip“ Zipdateien entpacken kann.
Auch das ertellen der Verzeichnisse bem Entpacken klappt prima;
Nur habe ich das Problem, dass gesplittete Archive nicht entpackt werden und mit einer
„java.util.zip.ZipException: invalid LOC header (bad signature)“
quittiert werden.

Gibt es eine Möglichkeit mit Hilfe von Java, gesplittete Archive zu entpacken?

Danke und Gruß

Sebastian

Gibt es eine Möglichkeit mit Hilfe von Java, gesplittete
Archive zu entpacken?

Du müsstest die gesplittete Datei eben erst vorher wieder zusammensetzen, also etwa so:

  1. Neue Datei X erstellen.
  2. Teildatei 01 byteweise einlesen und an X anhängen.
  3. Teildatei 02 byteweise einlesen und an X anhängen.

Dann hast du am Ende eine ganze zusammenhängende Zip-Datei die du ganz normal entpacken kannst.

Hallo deconstruct,

Danke, die Lösung funktioniert.

Habe aber ein neues Problem :frowning:

Bei größeren Dateien (größer 64MB) funktioniert das ganze nicht mehr. Da überschreite ich den vorgegebenen Speicher.

Ich muss wahrscheinlich den BufferedInputStream direkt in den BufferedOutputStream laufen lassen.

Hoffe das funktioniert.

Sebastian

Bei größeren Dateien (größer 64MB) funktioniert das ganze
nicht mehr. Da überschreite ich den vorgegebenen Speicher.

Ich muss wahrscheinlich den BufferedInputStream direkt in den
BufferedOutputStream laufen lassen.

Klar, sonst lädst du ja die ganze Datei erst in den Arbeitsspeicher. Du hast einen InputStream auf die Teil-Datei und einen Output-Stream auf die zusammengesetzte Datei. Sobald du ein Byte vom InputStream gelesen hast, schreibst du es gleich in den OutputStream. Dann braucht das ganze quasi keinen Speicherplatz.