Wie lässt sich der Inhalt eines Zip-Archivs auslesen?
Alle Zip-Operationen müssen so ausgeführt werden, dass
Fehler bei der Komprimierung, dem Lesen oder Schreiben des Archivs,
etc. abgefangen werden. Dies kann, wie hier, innerhalb eines try-catch
-Blocks oder auch durch eine throws
-Deklaration
erfolgen.
Die Klasse ZipFile
ist speziell dafür
geschaffen, die Einträge eines Zip-Archivs zu lesen. Ein Objekt
dieses Typs muss nach der Nutzung mit close()
geschlossen werden. Dem Konstruktor wird der Pfad zum Archiv
übergeben. Durch seine Methode entries()
wird dann
der Inhalt des Archivs in Form von ZipEntry
-Objekten
in eine Enumeration
eingelesen. Sie wird in einer
Schleife durchlaufen und kann durch die Methoden der Klasse ZipEntry
Angaben zu den Einträgen des Archivs liefern. Im Beispiel
werden der Name und die Größe des unkomprimierten
Eintrags ausgegeben.
import java.io.IOException;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class ZIPLesen {
public static void main(String[] args) {
String archPath = "/Users/joecze/Desktop/testdisk.zip";
ZipFile zf = null;
try {
zf = new ZipFile(archPath);
Enumeration<? extends ZipEntry> e = zf.entries();
ZipEntry ze;
while(e.hasMoreElements()){
ze = e.nextElement();
System.out.println(ze.getName() + ", Gr\u00F6\u00DFe unkomprimiert: " + ze.getSize() + " bit");
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(zf != null){
try {
zf.close();
} catch (IOException e) {
}
}
}
}
}
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.