Как определить, когда достигнут конец файла?

Я пытаюсь прочитать текст из текстового файла. Мне нужна помощь в выяснении, когда произошел конец файла. Как я могу определить это на 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

Поиск на основе строк может быть тем, что вы хотите, но также может быть полезен токен. Вы можете увидеть в документации Scanner

public boolean hasNext()

Возвращает true, если этот Scanner имеет другой токен на своем входе. Этот метод может блокироваться, ожидая ввода для сканирования. Scanner не продвигается мимо каких-либо входных данных.

Указано:     hasNext в интерфейсе Iterator<String>

Возвращает:     true тогда и только тогда, когда этот Scanner имеет еще один токен

Броски:     IllegalStateException - если этот Scanner закрыт

См. также:     Iterator