2008-09-26 13 views

Respuesta

8
ZipOutputStream targetStream = new ZipOutputStream(fileToSaveTo); 
ZipEntry entry = new ZipEntry(nameOfFileInZipFile); 
targetStream.putNextEntry(entry); 

byte[] dataBlock = new byte[1024]; 
int count = inputStream.read(dataBlock, 0, 1024); 
while (count != -1) { 
    targetStream.write(dataBlock, 0, count); 
    count = inputStream.read(dataBlock, 0, 1024); 
} 

En otras palabras:

  1. Se crea un ZipOutputStream, dándole el archivo que desea escribir.
  2. Crea un ZipEntry, que constituye un archivo dentro de ese archivo zip. es decir, cuando abre myFile.zip y hay 3 archivos allí, cada archivo es ZipEntry.

  3. pones eso en su ZipEntry ZipOutputStream

  4. Crear una memoria intermedia de bytes a leer los datos.
  5. Lea desde su inputStream en su búfer de bytes, y recuerde el conteo.
  6. Si bien el recuento no es -1, escriba ese byte byte en su zipStream.
  7. Lea la siguiente línea.

Cierre las transmisiones cuando haya terminado. Envuélvalo en un método como mejor le parezca.

Cuestiones relacionadas