Java Scanner找不到下一行?

3

出于某种原因,当我尝试扫描一个 .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是一个列表,我尝试将每一行添加到该列表中,以便检查聊天中是否存在与列表中的某个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个回答

5

您当前正在阅读两行而不是一行,请保存您所读的行以添加到列表中与同一行显示。

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

3

你两次调用了nextLine。请改为:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接