我想做一个类似二进制流的东西
内容不断的向尾部添加,然后从头开始拿,拿出来后数据自动补上去
这里有个问题就是在二进制流里面,前两位表示要拿取的长度,只有到了指定长度后才可以拿取
我现在做的方式是做一个很大的byte数组,然后拿出来后自动向前补齐,很麻烦
想问一下如果用流的话我这个是不是可以实现?

解决方案 »

  1.   

    你看下这样处理满足需求不?
    用多个byte[],逐一添加进Vector,取时则总是从第一个开始取
      

  2.   

    可以用通道,然后用缓冲来实现,然后在ByteBuffer.compact()可以压缩缓冲区,也就是你刚刚说的功能.用流的话去判断每次一个OutputStream最多可以将多少剩下的组数据写入
      

  3.   


    嗯这个主意不错。vector已经sync了,也不怕冲突。
      

  4.   

    用hash行不行?不懂,学习中~~