内部に複数のファイルを含む gzip アーカイブを作成する必要がありArchiveEntryますjava.util.zip.GZIPOutputStream。
14935 次
2 に答える
13
ウィキペディアのエントリによるとgzip:
そのファイル形式では複数のストリームを連結することもできますが (圧縮されたファイルは、元は 1 つのファイルであるかのように連結されて解凍されます)、gzip は通常、単一のファイルのみを圧縮するために使用されます。
GZIPOutputStreamこれがをサポートしない理由ArchiveEntryです。
通常、複数のファイルを で 1 つにアーカイブしtar、 で圧縮しgzipて圧縮アーカイブを生成し.tar.gzます。
の実装をtar.gz使用して、この方法で を作成できます。Apache Commons Compresstar
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 に答える