Чтение файлов в Java построчно, получая исключение после последней строки - PullRequest
0 голосов
/ 30 сентября 2018

У меня возникает проблема, когда после прочтения последней строки я получаю исключение для такого элемента, и мне было интересно, как можно изменить цикл while, чтобы избежать этого?

File file = new File(fileName); 
Scanner fileInput;
String line;
try {
     fileInput = new Scanner(file);
     while ( (line = fileInput.nextLine() ) != null  ) {
            System.out.println(line);
        }
     fileInput.close();
} catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

1 Ответ

0 голосов
/ 30 сентября 2018

Это не то, как вы должны использовать сканер, и вы путаете, как бы вы использовали BufferedReader с тем, как вы использовали бы сканер.Вместо этого время вместо этого должно проверяться на Scanner#hasNextLine()

while (fileInput.hasNextLine()) {
   line = fileInput.nextLine();
   // use line here
}

или вы можете использовать попытку с ресурсами, что-то вроде:

File file = new File(fileName); 
String line = "";

// use try-with resources
try (Scanner fileInput = new Scanner(file) {
    while (fileInput.hasNextLine() ) {
        line = fileInput.nextLine();
        System.out.println(line);
    }
} catch (FileNotFoundException e) {
    e.printStackTrace();
}
// no need to close Scanner/File as the try-with-resources does this for you
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...