Wie lässt sich der Inhalt eines Zip-Archivs auslesen?

Die Klassen ZipFile und ZipEntry stellen Methoden bereit, mit denen der Inhalt eines Zip-Archivs ausgelesen und untersucht werden kann.

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.