Ho un archivio ZIP incorporato in un file più grande. Conosco l'offset iniziale dell'archivio all'interno del file più grande e della sua lunghezza.Lettura di file da un archivio ZIP incorporato
Esistono librerie Java che mi consentono di leggere direttamente i file contenuti nell'archivio? Sto pensando lungo le linee di ZipFile.getInputStream()
. Sfortunatamente, ZipFile
non funziona per questo caso d'uso poiché i suoi costruttori richiedono un file ZIP standalone.
Per motivi di prestazioni, non riesco a copiare il file ZIP achive in un file separato prima di aprirlo.
modifica: Giusto per essere chiari, ho accesso casuale al file.
'java.util.zip.ZipInputStream.ZipInputStream (InputStream)'? – artbristol
Difficile. Con un file ZIP, è necessario prima leggere la directory, che è alla fine, quindi è necessario un accesso casuale.Potresti * leggere tutte le voci in un colpo solo dall'inizio, e ciò funzionerebbe con la maggior parte dei file zip, ma il formato stesso consente cose divertenti come voci duplicate e dati spazzatura casuali tra le voci. – Thilo
@Thilo: Per essere chiari, ho accesso casuale al file. – NPE