gzip存档里面有多个文件

我需要创建一个包含多个文件的gzip存档,如何在没有ArchiveEntry可用于java.util.zip.GZIPOutputStream类的情况下执行此操作?

根据维基百科上的gzip 条目 :

虽然它的文件格式也允许连接多个这样的流(压缩文件只是解压缩连接,好像它们原来是一个文件),gzip通常用于压缩单个文件。

这就是GZIPOutputStream不支持ArchiveEntry

通常,使用tar多个文件存档到一个文件中,然后使用gzip压缩以生成.tar.gz压缩存档。

你可以通过使用tarApache Commons Compress实现以这种方式创建tar.gz

 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 

这是一个压缩整个目录的更全面的示例 。

GZip压缩流。 通常,当人们将GZip与多个文件一起使用时,他们也会使用tar将它们拼凑在一起

你可以在这里找到一个java tar libarary: http : //www.trustice.com/java/tar/

或者您可以使用Zip而不是GZip