0

bzip2複数の中間ファイルにデータを書き込まずに、複数のストリームに圧縮したい大量の「入力」データがあります。

入力データのチャンクをバッファーに入れ、BZ2_bzBuffToBuffCompress()そのバッファーを使用して bzip2 フレーバーのバイトに圧縮し、BZ2_bzBuffToBuffCompress()入力データがなくなるまで、新しいデータに対する後続の呼び出しを繰り返すことはできますか?

bzip2のドキュメントには、次のように記載されています。

この方法での圧縮はワンショット イベントであり、この関数を 1 回呼び出すだけで実行されます。結果の圧縮データは、完全な bzip2 形式のデータ ストリームです。追加の入力データを提供するために追加の呼び出しを行うメカニズムはありません。そのようなメカニズムが必要な場合は、低レベル インターフェイスを使用してください。

BZ2_bzBuffToBuffCompress()これは、新しく満たされたバッファーサイズの入力データのチャンクで再実行できないことを意味しますか? BZ2_bzWrite()代わりに使うべきですか?

編集

実際には、1 つ以上の bzip ストリームを含むことができる 1 つのアーカイブ ファイルに出力することを意味していました。

4

1 に答える 1

2

好きなだけ新しいデータを呼び出し続けることができBZ2_bzBuffToBuffCompress()、あなたが望んでいたと私が思うものを生成します。

複数の bzip2 ストリームに圧縮したいデータ

それはまさにあなたが得るものです。複数の bzip2 ストリーム。次に、これらの各ストリームを個別にデコードする必要があります。

一連のバッファを取得して、それらから単一のBZ2_bzCompressInitbzip2 ストリームを作成する場合は、 、BZ2_bzCompress、およびを使用する必要がありますBZ2_bzCompressEnd

于 2012-08-05T14:13:08.757 に答える