Dateien in Java entpacken

Sheeraz Gul 12 Oktober 2023
Dateien in Java entpacken

Wir können die eingebaute Zip-API in Java verwenden, um eine Zip-Datei zu extrahieren. Dieses Tutorial zeigt, wie Sie eine ZIP-Datei in Java extrahieren.

Dateien in Java entpacken

Das java.util.zip dient zum Entpacken der ZIP-Dateien in Java. Der ZipInputStream ist die Hauptklasse, die verwendet wird, um die ZIP-Dateien zu lesen und zu extrahieren.

Führen Sie die folgenden Schritte aus, um ZIP-Dateien in Java zu extrahieren.

  • Lesen Sie die ZIP-Datei mit ZipInputStream und FileInputStream.
  • Lesen Sie die Einträge mit der Methode getNextEntry().
  • Lesen Sie nun die Binärdaten mit der Methode read() mit Bytes.
  • Schließen Sie den Eintrag mit der Methode closeEntry().
  • Abschließend die ZIP-Datei schließen.

Wir haben eine Funktion erstellt, um den Eingabe- und Zielpfad zu nehmen und die Dateien zu extrahieren, um diese Schritte zu implementieren. Die ZIP-Datei ist unten.

Zip-Datei

Lassen Sie uns die obige Methode in Java implementieren, um die im Bild gezeigte ZIP-Datei zu extrahieren.

package delftstack;

import java.io.BufferedOutputStream;
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 Java_Unzip {
  private static final int BUFFER_SIZE = 4096;
  public static void unzip(String ZipFilePath, String DestFilePath) throws IOException {
    File Destination_Directory = new File(DestFilePath);
    if (!Destination_Directory.exists()) {
      Destination_Directory.mkdir();
    }
    ZipInputStream Zip_Input_Stream = new ZipInputStream(new FileInputStream(ZipFilePath));
    ZipEntry Zip_Entry = Zip_Input_Stream.getNextEntry();

    while (Zip_Entry != null) {
      String File_Path = DestFilePath + File.separator + Zip_Entry.getName();
      if (!Zip_Entry.isDirectory()) {
        extractFile(Zip_Input_Stream, File_Path);
      } else {
        File directory = new File(File_Path);
        directory.mkdirs();
      }
      Zip_Input_Stream.closeEntry();
      Zip_Entry = Zip_Input_Stream.getNextEntry();
    }
    Zip_Input_Stream.close();
  }

  private static void extractFile(ZipInputStream Zip_Input_Stream, String File_Path)
      throws IOException {
    BufferedOutputStream Buffered_Output_Stream =
        new BufferedOutputStream(new FileOutputStream(File_Path));
    byte[] Bytes = new byte[BUFFER_SIZE];
    int Read_Byte = 0;
    while ((Read_Byte = Zip_Input_Stream.read(Bytes)) != -1) {
      Buffered_Output_Stream.write(Bytes, 0, Read_Byte);
    }
    Buffered_Output_Stream.close();
  }

  public static void main(String[] args) throws IOException {
    String ZipFilePath = "delftstack.zip";
    String DestFilePath = "C:\\Users\\Sheeraz\\eclipse-workspace\\Demos";
    unzip(ZipFilePath, DestFilePath);
    System.out.println("Zip File extracted Successfully");
  }
}

Die Ausgabe für den obigen Code ist unten.

Zip File extracted Successfully

Datei entpacken

Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook