web-dev-qa-db-ja.com

ファイルの終わりに達したときを判断する方法は?

テキストファイルからテキストを読み取ろうとしています。ファイルの終わりがいつ発生したかを把握するのに助けが必要です。 Javaでこれをどのように判断できますか?

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

ありがとう!

19
Blackbinary

hasNextLine()を使用して確認できます:

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

行ベースの検索が必要な場合もありますが、トークンベースの検索も便利です。 Scanner のドキュメントで見ることができます

public boolean hasNext()

このtrueの入力に別のトークンがある場合、Scannerを返します。このメソッドは、入力のスキャンを待機している間にブロックする場合があります。 Scannerは、入力を進めません。

指定者:hasNext inインターフェースIterator<String>

戻り値:trueは、このScannerに別のトークンがある場合にのみ

スロー:IllegalStateException-このScannerが閉じている場合

参照:Iterator

7
Thomas Langston