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