Décompressez les fichiers en Java

Sheeraz Gul 12 octobre 2023
Décompressez les fichiers en Java

Nous pouvons utiliser l’API Zip intégrée à Java pour extraire un fichier zip. Ce tutoriel montre comment extraire un fichier zip en Java.

Décompressez les fichiers en Java

Le java.util.zip sert à décompresser les fichiers zip en Java. Le ZipInputStream est la classe principale utilisée pour lire les fichiers zip et les extraire.

Suivez les étapes ci-dessous pour extraire les fichiers zip en Java.

  • Lire le fichier zip en utilisant ZipInputStream et FileInputStream.
  • Lire les entrées en utilisant la méthode getNextEntry().
  • Lisez maintenant les données binaires en utilisant la méthode read() avec des octets.
  • Fermez l’entrée en utilisant la méthode closeEntry().
  • Enfin, fermez le fichier zip.

Nous avons créé une fonction pour prendre le chemin d’entrée et de destination et extraire les fichiers pour implémenter ces étapes. Le fichier zip est ci-dessous.

Fichier zip

Implémentons la méthode ci-dessus en Java pour extraire le fichier zip affiché dans l’image.

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");
  }
}

La sortie pour le code ci-dessus est ci-dessous.

Zip File extracted Successfully

Décompresser le fichier

Auteur: Sheeraz Gul
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