在下面的代码中我们将值与-1进行比较以检查其文件是否结束,为什么我们在这里使用-1进行比较?
while((i=fin.read())!=-1)
{
System.out.println((char)i);
}
答案 0 :(得分:1)
引用Javadoc,read()
方法
返回: 读取的字符数,如果已到达流的末尾,则为-1
答案 1 :(得分:1)
这就是为什么Inputstream的documentation说:
public abstract int read() throws IOException从输入流中读取下一个数据字节。值字节作为int返回,范围为0 如果没有可用的字节,因为流的末尾已经存在 到达时,返回值-1。此方法阻塞直到输入数据 可用,检测到流的末尾,或者是异常 抛出。子类必须提供此方法的实现。 返回:数据的下一个字节,如果流的末尾是-1,则返回-1 到达。抛出:
答案 2 :(得分:0)
-1表示已到达流的末尾
所以在您的情况(i=fin.read())!=-1
中,您可以继续从流中读取内容,一旦到达流的末尾,即不再有数据,read
方法将返回{{1}你可以走出循环