使用 Java 的 Scanner 类确定文件结尾

2022-09-02 09:43:19

我正在尝试从文本文件中读取文本。我需要帮助弄清楚文件何时结束。如何在Java中确定这一点?

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

答案 1

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

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

答案 2

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

public boolean hasNext()

如果此输入中包含另一个令牌,则返回。此方法可能会在等待输入扫描时阻塞。不会前进超过任何输入。trueScannerScanner

指定方式:接口中hasNextIterator<String>

返回:当且仅当它有另一个令牌trueScanner

抛出: - 如果关闭IllegalStateExceptionScanner

另请参阅:Iterator