你可以看看readLine方法怎么写的,
这其实很容易理解的,你想想读取一行字符的的返回值为字符串,那肯定在那readLine方法内有一个字符串缓冲用来存储每个字符,当读取到流末尾就没有数据了,
那字符串缓冲区就为null,所以你调用readline方法得判断是不是为null看到末尾了吗?
读取一个字符,当读取到末尾返回-1;返回值为int,32位,那全为111...111就为-1;而读取的每个字节都不可能为-1,因为在读取每个字节会让它与上0x000000ff转换成int;
所以读取的任何字节转换int都不可能为-1;
readLine方法对read方法包装了,但也是使用底层的read方法;即read返回值为-1都到流末尾;
|