2012-05-18 21 views

Respuesta

4

GZip comprime una secuencia. Por lo general, cuando la gente usa gzip con múltiples archivos, también utilizan el alquitrán para picar juntos

Puede encontrar una libarary java alquitrán aquí: http://www.trustice.com/java/tar/

O usted podría utilizar Zip en lugar de gzip

11

Según la Wikipedia entry en gzip:

a pesar de su formato de archivo también permite múltiples tales corrientes sean concatenan (archivos comprimidos son simplemente descomprime concatenados como si originalmente eran un archivo), gzip normalmente se usa para comprimir solo archivos individuales.

Esta es la razón por la que GZIPOutputStream no es compatible con ArchiveEntry.

Normalmente, los archivos múltiples se archivan en uno con tar, luego se comprimen con gzip para producir un archivo comprimido .tar.gz.

Se puede crear un tar.gz de esta manera mediante el uso de la Apache Commons Compress implementation for tar:

file_out = new FileOutputStream (new File ("archive.tar.gz")); 
buffer_out = new BufferedOutputStream (file_out); 
gzip_out = new GzipCompressorOutputStream (buffer_out); 
tar_out = new TarArchiveOutputStream (gzip_out); 

// .. and then talk to 'tar_out' to write stuff 

Here is a more thorough example que comprime directorios completos.

Cuestiones relacionadas