FileInputStream read函数何时返回-1
read函数,返回-1
例子:三个字节(1,2,3)的文件,每次读两个字节,第三次才会返回-1,
第一次读取到的是 (1,2),read返回 len = 2;
第二次读取到的是(3,2), read返回 len = 1;
第三次读取到的是(3,2), read返回 len = -1;
read源码:
public int read(byte[] b) throws IOException {
int getData = read();
if (getData==-1) {
return -1;
}else{
b[0] = (byte)getData;
for (int i = 1; i < b.length; i++) {
getData = read();
if(-1==getData)
return i;
b[i] = (byte)getData;
}
}
return b.length;
}

浙公网安备 33010602011771号