我正在做一个编程项目,并不断收到如下所示的错误。

Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Scanner.java:1585)
    at ArrayPhoneDirectory.loadData(ArrayPhoneDirectory.java:42)
    at ArrayPhoneDirectoryTester.main(ArrayPhoneDirectoryTester.java:18)


我认为这是因为扫描仪read.nextLine()超出了文本文件的末尾。但是我在hasNextLine中使用了while循环,所以我不确定为什么会这样。
有人知道我要去哪里错吗?

 public void loadData (String sourceName){
Scanner read = new Scanner(sourceName);

while (read.hasNextLine()) {
    String name = read.nextLine();
    String telno = read.nextLine(); //ArrayPhoneDirectory Line 42
    add(name, telno);
  }
 }


关联文本文件

John
123
Bill
23
Hello
23455
Frank
12345
Dkddd
31231

最佳答案

hasNextLine()


将仅检查一个新行。您只检查了一行就无法阅读两行。

如果您必须不断读取记录,则可以

public void loadData (String sourceName){
    Scanner read = new Scanner(sourceName);
    int i = 1;

    while (read.hasNextLine()) {
        if(i%2 != 0)
            String name = read.nextLine();
        else
            String telno = read.nextLine(); //ArrayPhoneDirectory Line 42
        add(name, telno);
        i++;
    }
}

关于java - 使用hasNextLine()但仍获取java.util.NoSuchElementException:找不到行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23271775/

10-09 04:58