我不知道为什么我一直得到这个例外,因为我只有我的扫描程序处理它的hasNext()行。它将打印行,但然后抛出此异常。这是我的代码:
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 :(得分:2)
由于在将scan.nextLine
更改为scan.next
时出现同样的错误,看起来您可能偶然发现了这个错误[1]。
答案 1 :(得分:0)
它可能是文件中没有" \ n"字符。因此,hasNext()为true但nextLine()不存在。
最好使用check hasNextLine()来确定下一行。