Бесконечный ByteBuffer в Java - PullRequest
2 голосов
/ 27 июля 2010

Я работаю над программой, в которой я сжимаю большое количество информации и сохраняю ее в байтах в буфере.Я не могу использовать ByteBuffer, потому что я не знаю окончательный размер.

Что может быть лучше для реализации этого?

Ответы [ 3 ]

12 голосов
/ 27 июля 2010

Как насчет ByteArrayOutputStream?Конечно, это не так удобно, но будет делать то, что вы хотите.Когда вы закончите сбор байтов, вы можете просто выдвинуть байтовый массив.

2 голосов
/ 28 июля 2010

Вы должны хранить большие объемы информации в файле или базе данных, а не в памяти. Рано или поздно вам не хватит памяти.

1 голос
/ 28 июля 2010

Вы можете использовать Apache MINA IOBuffer , однако его алгоритм изменения размера довольно дорогой.

Что я делаю, так это использую прямой байтовый буфер, вам не нужно точно знать, насколько он великбудет, так как неиспользуемое пространство потребляет виртуальную память, а не кучу или даже основную память.На 64-битной машине виртуальная память очень дешевая.

Вы знаете, что окончательный размер не будет намного больше оригинального.

...