我正在开发一个程序,我正在压缩大量信息并将其以字节的形式存储在缓冲区中。我不能使用ByteBuffer
,因为我不知道最终尺寸。
有什么更好的方法来实现这一点?
我正在开发一个程序,我正在压缩大量信息并将其以字节的形式存储在缓冲区中。我不能使用ByteBuffer
,因为我不知道最终尺寸。
有什么更好的方法来实现这一点?
怎么样ByteArrayOutputStream
?当然,它并不完全方便,但它会做你想做的事。收集完字节后,您可以弹出一个字节数组。
您应该将大量信息存储在文件或数据库中,而不是内存中。迟早你会耗尽内存。
您可以使用 Apache MINA IOBuffer,但是它的大小调整算法相当昂贵。
我所做的是使用直接字节缓冲区,您不需要知道它有多大,因为未使用的空间会消耗虚拟内存,而不是堆甚至主内存。在 64 位机器上,虚拟内存非常便宜。
你知道最终的尺寸不会比原来的大很多。