在循环中产生byte数组,要把循环产生所有byte数组合并为一个大的byte数组,有没有什么好的方法实现。
循环次数未知,所以最后合并后的byte数组长度未知。while(true)
{
    byte[] aa=new byte[100]
}要求循环产生的byte数组合并成一个。谢谢!

解决方案 »

  1.   

    用定义个新数组,长度为你所有的之和,再用System.arraycopy方法来做。
    如果你要while一次加一次,那就是逻辑问题了。
      

  2.   

    System.arraycopy()
    或者用Trove开源包,可以保存原始类型的byte,并且可以一次导入,不断增加容量。
      

  3.   

    如果用System.arraycopy() 的话。
    每次循环内都会产生一个临时byte[],还要copy两次原来数组。
    如果有100次循环就要定义100次临时byte[],copy 200次。好像效率比较低啊。有没有更好的办法啊
      

  4.   


    public static void main(String[] args) {
    StringBuffer str = new StringBuffer();
    //while(true) 

        byte[] aa=new byte[2] ;
        str.append(new String(aa));

    byte[] arr = str.toString().getBytes();//合并后的
    //System.out.println(Arrays.toString(arr));

      

  5.   

    最后用ByteOutputStream搞定了。谢谢