内部に複数のファイルを含む gzip アーカイブを作成する必要がありArchiveEntry
ますjava.util.zip.GZIPOutputStream
。
14935 次
2 に答える
13
ウィキペディアのエントリによるとgzip
:
そのファイル形式では複数のストリームを連結することもできますが (圧縮されたファイルは、元は 1 つのファイルであるかのように連結されて解凍されます)、gzip は通常、単一のファイルのみを圧縮するために使用されます。
GZIPOutputStream
これがをサポートしない理由ArchiveEntry
です。
通常、複数のファイルを で 1 つにアーカイブしtar
、 で圧縮しgzip
て圧縮アーカイブを生成し.tar.gz
ます。
の実装をtar.gz
使用して、この方法で を作成できます。Apache Commons Compress
tar
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
ディレクトリ全体を圧縮するより完全な例を次に示します。
于 2012-05-18T14:10:32.527 に答える
6
GZip はストリームを圧縮します。通常、人々が複数のファイルで GZip を使用する場合、tar も使用してそれらを一緒にむしゃむしゃ食べます
Java tar ライブラリは、http://www.trustice.com/java/tar/ にあります。
または、GZip の代わりに Zip を使用できます
于 2012-05-18T14:02:36.880 に答える