2012-05-18 5 views

Antwort

4

GZip komprimiert einen Stream. Normalerweise, wenn Menschen GZIP mit mehreren Dateien verwenden, verwenden sie auch Teer sie naschen zusammen

Sie ein Java-tar libarary finden Sie hier: http://www.trustice.com/java/tar/

Oder könnten Sie Zip anstelle von gzip

11

Nach die Wikipedia entry auf gzip:

Obwohl das Dateiformat ermöglicht auch mehrere solcher Ströme verkettet (ZIP-Dateien werden einfach verketteten dekomprimiert werden, als ob 0.123.Sie waren ursprünglich eine Datei), gzip wird normalerweise verwendet, um nur einzelne Dateien zu komprimieren.

Aus diesem Grund unterstützt GZIPOutputStreamArchiveEntry nicht.

Normalerweise werden mehrere Dateien in einem mit tar archiviert und dann mit gzip zu einem komprimierten Archiv .tar.gz komprimiert.

Sie könnten eine tar.gz auf diese Weise erstellen, indem Sie die Apache Commons Compress implementation for tar mit:

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 die ganze Verzeichnisse komprimiert.