2012-05-18 31 views

回答

4

GZip壓縮一個流。通常情況下,當人們用gzip有多個文件,他們還使用焦油咀嚼在一起

你可以找到一個java焦油libarary這裏:http://www.trustice.com/java/tar/

或者你可以使用的除了gzip

11

根據郵編在Wikipedia entrygzip

雖然它的文件格式也允許多個這樣的數據流是 級聯(壓縮文件解壓縮的簡單拼接,彷彿 它們原本是一個文件),gzip通常用於壓縮僅僅 單個文件。

這就是爲什麼GZIPOutputStream不支持ArchiveEntry

通常情況下,多個文件被歸檔爲tar,然後使用gzip進行壓縮以生成.tar.gz壓縮存檔。

你可以通過使用Apache Commons Compress implementation for tar以這種方式創建一個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 

Here is a more thorough example是壓縮整個目錄。

相關問題