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

Bla*_*ary 19 java file-io file java.util.scanner

我试图从文本文件中读取文本.我需要帮助搞清楚文件结束的时间.如何在Java中确定这一点?

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

谢谢!

jjn*_*guy 27

你可以检查使用hasNextLine():

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

  • 如果你不是一次读取整行(`.nextLine()`),`Scanner.hasNextLLine()`将崩溃并刻录.否则,根据Thomas Langston,使用`.hasNext()`代替. (4认同)

Tho*_*ton 7

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

public boolean hasNext()
Run Code Online (Sandbox Code Playgroud)

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

指定者: hasNext在界面中Iterator<String>

返回: true当且仅当它Scanner有另一个令牌时

抛出: IllegalStateException- 如果Scanner关闭的话

也可以看看: Iterator