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