3

私は、大量の情報を圧縮してバッファにバイト単位で保存するプログラムに取り組んでいます。ByteBuffer最終的なサイズがわからないので使えません。

これを実装するより良い方法は何でしょうか?

4

3 に答える 3

12

どうByteArrayOutputStreamですか?確かに、それは必ずしも便利ではありませんが、あなたが望むことをします。バイトの収集が終了したら、バイト配列をポップアウトできます。

于 2010-07-27T13:01:40.320 に答える
3

大量の情報は、メモリではなくファイルまたはデータベースに格納する必要があります。遅かれ早かれ、メモリが不足します。

于 2010-07-28T03:59:58.183 に答える
2

Apache MINA IOBufferを使用できますが、そのサイズ変更アルゴリズムはかなり高価です。

私がしているのは直接バイトバッファを使用することです。未使用のスペースはヒープやメインメモリではなく仮想メモリを消費するため、その大きさを正確に知る必要はありません。64ビットマシンでは、仮想メモリは非常に安価です。

最終的なサイズが元のサイズよりも大きくなることはありません。

于 2010-07-28T06:28:38.620 に答える