byte最后一次读取的长度比之前的要校所以你byte数组尾巴那几位不是空的,是前一次读取的尾部。 设置长度是42或者更大时,你的byte数组一次性就把内容全部读取完了。while只执行一次,而设置为小于42的时候,就会多次执行while