Descomprimir archivos en Java

Sheeraz Gul 12 octubre 2023
Descomprimir archivos en Java

Podemos usar la API Zip integrada en Java para extraer un archivo zip. Este tutorial demuestra cómo extraer un archivo zip en Java.

Descomprimir archivos en Java

El java.util.zip se utiliza para descomprimir los archivos zip en Java. El ZipInputStream es la clase principal utilizada para leer los archivos zip y extraerlos.

Siga los pasos a continuación para extraer archivos zip en Java.

  • Lea el archivo zip usando ZipInputStream y FileInputStream.
  • Lea las entradas utilizando el método getNextEntry().
  • Ahora lea los datos binarios usando el método read() con bytes.
  • Cierra la entrada usando el método closeEntry().
  • Finalmente, cierre el archivo zip.

Creamos una función para tomar la ruta de entrada y de destino y extraer los archivos para implementar estos pasos. El archivo zip está debajo.

Archivo zip

Implementemos el método anterior en Java para extraer el archivo zip que se muestra en la imagen.

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 salida para el código anterior está a continuación.

Zip File extracted Successfully

Descomprimir archivo

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