Desempaquetar / descomprimir uno o varios archivos:
.ZIP
.RAR
etc
con sentencias de java, sin utilizar librería externas.
Espero les sea de utilidad.
////////////////////////////////////////////
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipInputStream;
public class Descomprime {
public static void main(String[] args) {
try{
File carpeta = new File("D://DATA//pruebadescomprime");
for (File f : carpeta.listFiles()) {
if(f.getName().contains(".zip")){
System.out.println(f.getName());
descomprimir(f.getAbsolutePath(), f.getAbsolutePath().substring(0, f.getPath().length()-4));
//f.delete(); opcional, si desea también borrar el archivo zip original
}
}
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
public static void descomprimir(String archivoZIP, String archivoDescomprimido) throws Exception {
int BUFFER_SIZE = 1024;
BufferedOutputStream bos = null;
FileInputStream fis = null;
ZipInputStream zipis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(archivoZIP);
zipis = new ZipInputStream(new BufferedInputStream(fis));
if (zipis.getNextEntry() != null) {
int len = 0;
byte[] buffer = new byte[BUFFER_SIZE];
fos = new FileOutputStream(archivoDescomprimido);
bos = new BufferedOutputStream(fos, BUFFER_SIZE);
while ((len = zipis.read(buffer, 0, BUFFER_SIZE)) != -1)
bos.write(buffer, 0, len);
bos.flush();
} else {
throw new Exception("Zip Vacio");
} // cierra if
} catch (Exception e) {
throw e;
} finally {
bos.close();
zipis.close();
fos.close();
fis.close();
} // cierra try
} // cierra descomprimir
}
////////////////////////////////////////////
No hay comentarios:
Publicar un comentario