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错误,实在想不明白错在哪里,请高手指教一下
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错误,实在想不明白错在哪里,请高手指教一下
情况content
1.目标缓冲区
2.开始存储字符处的偏移量
3.要读取的最多字符数
第一次,你读取到了1022个字节,
,继续读
又读了1022个,可是你的content已经装不下啦!!!一般读取是这样的while(true){
length = reader.read(content, offset, 1023);
if(length==-1){
break;
}
sleep((int)(Math.random()*1000));
}
offset - Offset at which to start storing characters是说的数组里的offset,所以要设成0