Ich habe ein ZIP-Archiv, das in eine größere Datei eingebettet ist. Ich kenne den Startoffset des Archivs innerhalb der größeren Datei und deren Länge.Lesen von Dateien aus einem eingebetteten ZIP-Archiv
Gibt es Java-Bibliotheken, die es mir ermöglichen, die im Archiv enthaltenen Dateien direkt zu lesen? Ich denke an die Linien ZipFile.getInputStream()
. Leider funktioniert ZipFile
nicht für diesen Anwendungsfall, da seine Konstruktoren eine eigenständige ZIP-Datei erfordern.
Aus Leistungsgründen kann ich das ZIP-Archiv nicht in eine separate Datei kopieren, bevor ich es öffne.
bearbeiten: Nur um klar zu sein, habe ich zufälligen Zugriff auf die Datei.
'java.util.zip.ZipInputStream.ZipInputStream (InputStream)'? – artbristol
Schwierig. Bei einer ZIP-Datei müssen Sie zuerst das Verzeichnis lesen, das sich am Ende befindet, so dass Sie einen wahlfreien Zugriff benötigen.Sie * könnten * alle Einträge auf einmal von Anfang an lesen, und das würde mit den meisten ZIP-Dateien funktionieren, aber das Format selbst ermöglicht lustige Dinge wie doppelte Einträge und zufällige Junk-Daten zwischen den Einträgen. – Thilo
@Thilo: Nur um klar zu sein, ich habe zufälligen Zugriff auf die Datei. – NPE