解决方案 »

  1.   

    既然是多线程,如果我是你,我就用piped stream。
    如果你一定要像现在这么做,那就用ByteArrayOutputStream。读到的数据依次写进去,然后用toByteArray() 方法拿到整个的数组。
    我理解对了么?
      

  2.   

    piped stream 谢谢提了这个建议。
    ByteArrayOutputStream 是个好方式。
    我目前实现的方式是: 获取的数据流(curr)都被maxLength减掉,
    得到剩下的长度:
    int remain=(max-curr);//剩下多少没接收完成
    byte[] bufBody = new byte[remain];
    input.read(bufBody);//继续取剩下的数据流,直到完成。方法可能不好,结帖。