Как определить, когда был достигнут конец файла? - PullRequest
19 голосов
/ 17 ноября 2010

Я пытаюсь прочитать текст из текстового файла.Мне нужна помощь, чтобы выяснить, когда произошел конец файла.Как я могу определить это в Java?

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

Спасибо!

Ответы [ 2 ]

26 голосов
/ 17 ноября 2010

Вы можете проверить, используя hasNextLine():

Scanner input = new Scanner(new File("\""+filename+"\""));
while(input.hasNextLine())
{
   String data = input.nextLine();
}
6 голосов
/ 17 ноября 2010

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

public boolean hasNext()

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

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

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

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

Смотрите также: Iterator

...