archive gzip avec plusieurs fichiers à l'intérieur
J'ai besoin de créer une archive gzip avec plusieurs fichiers à l'intérieur, comment puis-je le faire sans ArchiveEntry disponibles pour java.util.zip.GZIPOutputStream classe?
Bien que son format de fichier permet également de plusieurs de ces flux
concaténées (fichiers zippés sont tout simplement décompressé concaténées comme si
ils ont été à l'origine d'un fichier), gzip est normalement utilisé pour compresser juste
seul les fichiers.
C'est pourquoi GZIPOutputStream ne prend pas en charge ArchiveEntry.
Normalement, plusieurs fichiers sont archivés dans une avec tar, puis compressé avec gzip pour produire un .tar.gz archive compressée.
file_out =newFileOutputStream(newFile("archive.tar.gz"));
buffer_out =newBufferedOutputStream(file_out);
gzip_out =newGzipCompressorOutputStream(buffer_out);
tar_out =newTarArchiveOutputStream(gzip_out);//.. and then talk to 'tar_out' to write stuff
GZip compresse un ruisseau. Généralement, quand les gens utiliser GZip avec plusieurs fichiers, ils utilisent également le goudron à croquer leur ensemble
Selon la L'entrée de Wikipedia sur
gzip
:C'est pourquoi
GZIPOutputStream
ne prend pas en chargeArchiveEntry
.Normalement, plusieurs fichiers sont archivés dans une avec
tar
, puis compressé avecgzip
pour produire un.tar.gz
archive compressée.Vous pouvez créer un
tar.gz
de cette façon, en utilisant leApache Commons Compress
de la mise en œuvre detar
:Ici est un plus approfondie exemple qui comprime des répertoires entiers.
OriginalL'auteur ArjunShankar
GZip compresse un ruisseau. Généralement, quand les gens utiliser GZip avec plusieurs fichiers, ils utilisent également le goudron à croquer leur ensemble
Vous pouvez trouver un java goudron bibliothèque ici: http://www.trustice.com/java/tar/
Ou vous pouvez utiliser Zip au lieu de GZip
OriginalL'auteur ControlAltDel