編集:Deflater派生クラスがヘッダーとフッターのデータを書き込むことを決定したとき、およびそれらの事実を活用する方法を知る必要があります。私は本当に次のことをしたいと思います:
Deflater派生クラスの辞書をいくつかのバイトでプライミングします(私はこれを取得したと思います)。
圧縮するデータをDeflater派生クラスに送信します(これを取得したと思います)。
その圧縮されたすべてのデータ(ヘッダーまたはフッターデータなし)を必要な場所に出力します(これを行う方法がわからない場合は、ヘッダー/フッターの両方、または1つだけを使用しても問題ありません)。 。
1からやり直して、オブジェクトを再利用します。
元のQ:JavaDeflaterOutputStreamを使用して一部のデータを圧縮しています。また、ヘッダーとフッターを変更して、この圧縮データを変更しています。DeflaterOutputStreamに入力を与え、gzip形式のヘッダーやフッターではなく、圧縮されたデータ部分のみを出力するようにします。どうすればこれを行うことができますか?
これまでのところ、私はこのようなことをしようとしてきました:
internalWriter.write(storage, 0, amountRead);
internalWriter.finish();
internalWriter.getDef().reset();
ここでのinternalWriterは、DeflaterOutputStreamの拡張です。これにより、圧縮データがヘッダーとフッターとともに出力されます。ただし、同じオブジェクトを使用した後続の呼び出しでは、圧縮されたデータとフッターが出力されます。基本的には、圧縮されたデータのみ、またはおそらく毎回同じことが発生するようにしたいです。何か案は?圧縮ストリームがclose、flush、finishをどのように使用するかについての簡単な説明は、ヘッダーとフッターがいつ作成および出力されるかに焦点を当てて、私にも役立つかもしれません。
そして、DeflaterOutputStreamを使用するたびに、すべてをすぐに出力したいと思っています。そういうわけで、私は上記のように右の直後にフィニッシュをしました...