try{
InputStream stream=remote.openStream();
InputStreamReader reader =new InputStreamReader(stream);
int offset=0;
while(offset<length){
offset+=reader.read(content, offset, 1023);
sleep((int)(Math.random()*1000));
}
}content是char[1024]数组,我想从流里每次读1023字节,流的长度是length,但是每次第二次到reader.read(content, offset, 1023);
就出现java.lang.IndexOutOfBoundsException错误,实在想不明白错在哪里,请高手指教一下

解决方案 »

  1.   

     Arrays.fill(content,(byte)0);
    情况content
      

  2.   

    offset+=reader.read(content, 0, 1023);
      

  3.   

    readerv.read 三个参数:
    1.目标缓冲区
    2.开始存储字符处的偏移量
    3.要读取的最多字符数
      

  4.   

    2楼是问题的地点
    第一次,你读取到了1022个字节,
    ,继续读
    又读了1022个,可是你的content已经装不下啦!!!一般读取是这样的while(true){
      length = reader.read(content, offset, 1023);
     if(length==-1){
        break;
      }
      sleep((int)(Math.random()*1000));
    }
      

  5.   

    offset+=reader.read(content, offset, 1023);这里的参数指的是
    offset - Offset at which to start storing characters是说的数组里的offset,所以要设成0