Java中未知长度的字节数组:第二部分

Ian*_*kan 6 java arrays byte dynamic

类似于"java中未知长度的字节数组",我需要能够将未知数量的字节从数据源写入byte []数组. 但是,对于压缩算法,我需要能够读取先前存储的字节,因此ByteArrayOutputStream对我不起作用.

现在我有一个方案,我分配固定大小N的ByteBuffers,添加一个新的,当我达到N,2N,3N字节等.数据耗尽后,我将所有缓冲区转储到一个现在已知大小的数组.

有一个更好的方法吗?具有固定大小的缓冲区降低了压缩算法的灵活性.

Chr*_*ett 5

那么使用循环字节缓冲区呢?它有可能动态增长并且高效.

这里有一个实现:http://ostermiller.org/utils/CircularByteBuffer.java.html


van*_*nza 4

你为什么不子类化ByteArrayOutputStream?这样您的子类就可以访问 protectedbufcount字段,并且您可以向您的类添加方法来直接操作它们。