2016-02-23 3 views
1

Я не знаю, почему я продолжаю получать это исключение, потому что у меня есть только мой процесс сканирования строк, когда он hasNext(). Он напечатает строки, но затем выбросит это исключение. Вот мой код:NoSuchElementException on Scanner.nextLine()

PagesCollection tester = new PagesCollection(); 

String fileName = (args.length > 0)? args[0] : "none"; 
Scanner scan = new Scanner(new FileInputStream(fileName), "UTF-8"); 

while (scan.hasNext()) { 
    String line = scan.nextLine(); 
    line = line.replace("\n", "").replace("\r", ""); 
    System.out.println(line); 
    Page newPage = new Page(line); 
    tester.addPage(newPage); 
} 

Исключение:

java.util.NoSuchElementException: No line found at java.util.Scanner.nextLine(Scanner.java:1516) 
at Webpage.countLines(Page.java:38) at Webpage.compareTo(Page.java:60) 
at Webpage.compareTo(Page.java:14) 
at java.util.Arrays.mergeSort(Arrays.java:1144) 
at java.util.Arrays.sort(Arrays.java:1079) 
at PagesCollection.addPage(PagesCollection.java:32) 
at PagesCollection.main(PagesCollection.java:75) 
+0

Можете ли вы предоставить стек – NAIT

+0

исключений, где происходит исключение, вход по-прежнему имеет следующие маркеры на текущей строке, но не имеет следующую строку. – Berger

+0

java.util.NoSuchElementException: Нет линии не найдено \t на java.util.Scanner.nextLine (Scanner.java:1516) \t на Webpage.countLines (Page.java:38) \t в Webpage.compareTo (Page.java : 60) \t на Webpage.compareTo (Page.java:14) \t в java.util.Arrays.mergeSort (Arrays.java:1144) \t в java.util.Arrays.sort (Arrays.java:1079) \t at PagesCollection.addPage (PagesCollection.java:32) \t at PagesCollection.main (PagesCollection.java:75) – Liv

ответ

0

Это может быть текст в файле без "\ п" характер. Итак, hasNext() истинно, но nextLine() не существует.

Лучшая проверка использования hasNextLine(), чтобы быть уверенным о следующей строке.

+1

Я тоже так думал, но получаю ту же ошибку с hasNextLine() – Liv

Смежные вопросы