如何-1表示读取外部.txt文件时文件结束?

时间:2014-12-12 06:36:29

标签: java

在下面的代码中我们将值与-1进行比较以检查其文件是否结束,为什么我们在这里使用-1进行比较?

while((i=fin.read())!=-1)
{  
  System.out.println((char)i);  
}

3 个答案:

答案 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}你可以走出循环