2016-04-27 4 views
0

Gibt es einen direkten Weg, um eine java.util.zip.ZipEntry in eine File zu entpacken?ZipEntry in Datei

Ich möchte einen Speicherort angeben (wie "C: \ temp \ myfile.java") und den Eintrag an diesem Speicherort entpacken.

Es gibt Code mit Streams im Netz, aber ich würde eine getestete Bibliotheksfunktion bevorzugen.

+1

* "... zu einer' Datei'? "* [' File'] (http://docs.oracle.com/javase/8/docs/api/java/io/File.html) ist eine abstrakte Darstellung eines Pfadnamens. Meinst du "Datei" (kein Code-Markup)? –

+0

Ein Mittelwert, gebe ich der Funktion eine Datei und es entpackt den Eintrag zu diesem abstrakten Pfadnamen. –

+1

Es tut mir leid, wenn das unklar ist oder ein Duplikat, aber bitte kommentieren, anstatt es zu stimmen. –

Antwort

7

Verwenden ZipFile Klasse

ZipFile zf = new ZipFile("zipfile"); 

Erhalten Eintrag

ZipEntry e = zf.getEntry("name"); 

Get

InputStream is = zf.getInputStream(e); 

Speichern inpustream Bytes

Files.copy(is, Paths.get("C:\\temp\\myfile.java")); 
2

Verwenden Sie ZipInputStream, um zum gewünschten ZipEntry zu gelangen, indem Sie die Methode getNextEntry() durchlaufen. Verwenden Sie dann die Methode ZipInputStream.read(...), um die Bytes für den aktuellen ZipEntry zu lesen. Geben Sie diese Bytes in eine -Datei ein, die auf eine Datei Ihrer Wahl verweist.

+0

Das bedeutet: Nein, es gibt keine Bibliotheksfunktion? –

Verwandte Themen