
15 de noviembre de 2007 | 11:07 pm

admin
Descomprimir archivos comprimidos Zip usando las librerías nativas de java.
import java.io.*;import java.util.zip.*;
public class UnZip {
final int BUFFER = 2048;
public static void main (String argv[]) {
try {
BufferedOutputStream dest = null;
FileInputStream fis = new FileInputStream(argv[0]);
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));
ZipEntry entry;
while((entry = zis.getNextEntry()) != null) {
System.out.println("Extracting: " +entry);
int count;
byte data[] = new byte[BUFFER];
// write the files to the disk
FileOutputStream fos = new FileOutputStream(entry.getName());
dest = new BufferedOutputStream(fos, BUFFER);
while ((count = zis.read(data, 0, BUFFER)) != -1) {
dest.write(data, 0, count);
}
dest.flush();
dest.close();
}
zis.close();
} catch(Exception e) {
e.printStackTrace();
}
}}
Gracias por el codigo, pero te remito un bugA la hora de descomprimir un archivo zip con carpetas da una excepcion.Esa excepcion se puede eliminar modificando el codigo en la linea 18 reemplazando con esto:String rutaarchivo=entry.getName();int index=rutaarchivo.lastIndexOf(‘/’);rutaarchivo=rutaarchivo.substring(index+1);FileOutputStream fos = new FileOutputStream(rutaarchivo);
asi mejor:if(!entry.isDirectory()){String rutaarchivo=entry.getName();int index=rutaarchivo.lastIndexOf(‘/’);rutaarchivo=rutaarchivo.substring(index+1);//System.out.println(“test2: “+ carlos);FileOutputStream fos = new FileOutputStream(rutaarchivo);…}
Oye disculpas la ingnorancia, pero en donde queda almacenada la informacion que fue extraida porq no la encuentro..Ayuda
en el Classpath de tu proyecto
Como quedaria el codigo entonces??