私は、大量の情報を圧縮してバッファにバイト単位で保存するプログラムに取り組んでいます。ByteBuffer
最終的なサイズがわからないので使えません。
これを実装するより良い方法は何でしょうか?
私は、大量の情報を圧縮してバッファにバイト単位で保存するプログラムに取り組んでいます。ByteBuffer
最終的なサイズがわからないので使えません。
これを実装するより良い方法は何でしょうか?
どうByteArrayOutputStream
ですか?確かに、それは必ずしも便利ではありませんが、あなたが望むことをします。バイトの収集が終了したら、バイト配列をポップアウトできます。
大量の情報は、メモリではなくファイルまたはデータベースに格納する必要があります。遅かれ早かれ、メモリが不足します。
Apache MINA IOBufferを使用できますが、そのサイズ変更アルゴリズムはかなり高価です。
私がしているのは直接バイトバッファを使用することです。未使用のスペースはヒープやメインメモリではなく仮想メモリを消費するため、その大きさを正確に知る必要はありません。64ビットマシンでは、仮想メモリは非常に安価です。
最終的なサイズが元のサイズよりも大きくなることはありません。