如何确定何时到达文件结尾?

我正在尝试从文本文件中读取文本。 我需要帮助搞清楚文件结束的时间。 我怎样才能在Java中确定这一点?

FileInputStream istream = new FileInputStream("\""+filename+"\""); Scanner input = new Scanner(istream); while(EOF != true) { .... } 

谢谢!

您可以使用hasNextLine()进行检查:

 Scanner input = new Scanner(new File("\""+filename+"\"")); while(input.hasNextLine()) { String data = input.nextLine(); } 

基于行的检索可能是您想要的,但基于令牌的检索也很有用。 您可以在Scanner文档中看到

 public boolean hasNext() 

如果此Scanner在其输入中有另一个标记,则返回true 。 在等待输入扫描时,此方法可能会阻塞。 Scanner不会超过任何输入。

指定者:接口Iterator hasNext

返回:当且仅当此Scanner具有另一个令牌时才返回true

抛出: IllegalStateException – 如果此Scanner关闭

另请参见: Iterator