Java 内部有多个文件的gzip存档
我需要创建一个内部有多个文件的gzip存档,如果没有Java 内部有多个文件的gzip存档,java,compression,gzip,Java,Compression,Gzip,我需要创建一个内部有多个文件的gzip存档,如果没有java.util.zip.GZIPOutputStream类可用的ArchiveEntry,我怎么做呢?gzip压缩流。通常,当人们对多个文件使用GZip时,他们也会使用tar将它们咀嚼在一起 您可以在此处找到java tar库: 或者您可以使用Zip而不是GZip,根据 虽然它的文件格式也允许多个这样的流 连接(压缩文件只是解压连接,就像 它们最初是一个文件),gzip通常用于压缩 单个文件 这就是为什么GZIPOutputStream不支
java.util.zip.GZIPOutputStream
类可用的ArchiveEntry
,我怎么做呢?gzip压缩流。通常,当人们对多个文件使用GZip时,他们也会使用tar将它们咀嚼在一起
您可以在此处找到java tar库:
或者您可以使用Zip而不是GZip,根据
虽然它的文件格式也允许多个这样的流
连接(压缩文件只是解压连接,就像
它们最初是一个文件),gzip通常用于压缩
单个文件
这就是为什么GZIPOutputStream
不支持ArchiveEntry
通常,使用tar
将多个文件归档为一个文件,然后使用gzip
进行压缩,以生成.tar.gz
压缩归档文件
您可以通过以下方法创建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