Java Scanner找不到下一行?

时间:2017-08-02 14:56:52

标签: java line

出于某种原因,当我尝试扫描.txt文件时,它找不到任何行,从而导致错误:

java.util.NoSuchElementException: No line found     
   at java.util.Scanner.nextLine(Unknown Source)  

代码:

File file = new File("C:\\Users\\kayc0\\Desktop\\CkayBotBets\\mods.txt");
Scanner scanner = new Scanner(new FileInputStream (file), "UTF-8");

    while(scanner.hasNextLine()){
         modsList.add(scanner.nextLine());       
         System.out.println(scanner.nextLine());
     }

我没有关闭扫描仪。 modsList是一个List,我尝试添加每一行,以便我可以检查聊天(用户)中的mod是否与列表中的一个匹配,但错误是在System.out上...

我检查了.txt文件是否存在以下内容:

 File f = new File("C:\\Users\\kayc0\\Desktop\\CkayBotBets\\mods.txt");

            if(f.exists() && !f.isDirectory()) { 
                System.out.println("file exists");
            }

任何人都知道为什么不读这些线?

.txt内容:

abkayckay
kayc01

谢谢,任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:5)

您目前正在阅读两行而不是一行,将您阅读的行添加到列表中显示相同的行。

while(scanner.hasNextLine()){
    String line = scanner.nextLine();
    modsList.add(line);       
    System.out.println(line);
}

答案 1 :(得分:3)

你打电话给nextLine。改为:

 while(scanner.hasNextLine()){
         String value = scanner.nextLine()
         modsList.add(value);       
         System.out.println(value);
     }