Java Unzip Datei Beispiel

Willkommen beim Beispiel zum Entpacken von Java-Dateien. Im letzten Beitrag haben wir gelernt, wie man in Java eine Datei und ein Verzeichnis zippt. Hier werden wir dieselbe Zip-Datei, die aus einem Verzeichnis erstellt wurde, in ein anderes Ausgabeverzeichnis entpacken.

Java-Datei entpacken

Um eine Zip-Datei zu entpacken, müssen wir die Zip-Datei mit dem ZipInputStream lesen und dann alle ZipEntry einzeln lesen. Verwenden Sie dann FileOutputStream, um sie in das Dateisystem zu schreiben. Wir müssen auch das Ausgabeverzeichnis erstellen, wenn es nicht vorhanden ist, und alle verschachtelten Verzeichnisse im Zip-Archiv. Hier ist das Java-Programm zum Entpacken von Dateien, das die zuvor erstellte tmp.zip in das Ausgabeverzeichnis entpackt.

package com.journaldev.files;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public class UnzipFiles {

    public static void main(String[] args) {
        String zipFilePath = "/Users/pankaj/tmp.zip";
        
        String destDir = "/Users/pankaj/output";
        
        unzip(zipFilePath, destDir);
    }

    private static void unzip(String zipFilePath, String destDir) {
        File dir = new File(destDir);
        // Erstellen Sie das Ausgabeverzeichnis, wenn es nicht vorhanden ist
        if(!dir.exists()) dir.mkdirs();
        FileInputStream fis;
        // Puffer zum Lesen und Schreiben von Daten in Dateien
        byte[] buffer = new byte[1024];
        try {
            fis = new FileInputStream(zipFilePath);
            ZipInputStream zis = new ZipInputStream(fis);
            ZipEntry ze = zis.getNextEntry();
            while(ze != null){
                String fileName = ze.getName();
                File newFile = new File(destDir + File.separator + fileName);
                System.out.println("Unzipping to "+newFile.getAbsolutePath());
                // Erstellen von Verzeichnissen für Unterverzeichnisse in Zip
                new File(newFile.getParent()).mkdirs();
                FileOutputStream fos = new FileOutputStream(newFile);
                int len;
                while ((len = zis.read(buffer)) > 0) {
                fos.write(buffer, 0, len);
                }
                fos.close();
                // Diese ZipEntry schließen
                zis.closeEntry();
                ze = zis.getNextEntry();
            }
            // Letzte ZipEntry schließen
            zis.closeEntry();
            zis.close();
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
    }

}

Nach Abschluss des Programms haben wir alle Inhalte der Zip-Datei im Ausgabeordner mit derselben Verzeichnishierarchie. Die Ausgabe des obigen Programms lautet:

Unzipping to /Users/pankaj/output/.DS_Store
Unzipping to /Users/pankaj/output/data/data.dat
Unzipping to /Users/pankaj/output/data/data.xml
Unzipping to /Users/pankaj/output/data/xmls/project.xml
Unzipping to /Users/pankaj/output/data/xmls/web.xml
Unzipping to /Users/pankaj/output/data.Xml
Unzipping to /Users/pankaj/output/DB.xml
Unzipping to /Users/pankaj/output/item.XML
Unzipping to /Users/pankaj/output/item.xsd
Unzipping to /Users/pankaj/output/ms/data.txt
Unzipping to /Users/pankaj/output/ms/project.doc

Das ist alles zum Beispiel zum Entpacken von Java-Dateien.

Source:
https://www.digitalocean.com/community/tutorials/java-unzip-file-example