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
yFileInputStream
. -
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.
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
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