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 回答