Проблемы с получением следующей строки файла в Java с помощью класса Scanner - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь получить вызов nextLine, но, кажется, получаю остальную часть всего файла, когда я его создаю.

header = getHeaderLine(fname, columns);

Scanner inputFile = null;

try{
    inputFile = new Scanner(new FileInputStream(fname));
} catch (FileNotFoundException e){
    System.out.println("File is not found.");
    System.exit(0);
}

if (hasHeader) inputFile.nextLine();

String line = inputFile.nextLine();

for(int i=0; i<body.length; i++){
    body[i] = getEntries(line, columns);
    line = inputFile.nextLine();
}

Здесь, где я вызываю функцию nextLine (), она, кажется, захватываетвесь остальной файл.Это ошибка, которую я gedtting

Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Scanner.java:1540)
    at CFR.main(CFR.java:50)

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Проблема будет с символом end-of-line.Символ конца строки зависит от операционной системы Linux, Mac, Windows / DOS и т. Д.

Проверьте, имеет ли файл правильный символ end-of-line для ОС, на которой вы работаете.

0 голосов
/ 16 мая 2018

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

...