当前位置: 首页 > 面试题库 >

使用hasNextLine()但仍获取java.util.NoSuchElementException:找不到行

赵飞雨
2023-03-14
问题内容

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

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++;
    }
}


 类似资料:
  • 我正在做一个编程项目,并不断得到如下所示的错误。 关联文本文件

  • 问题内容: 通过扫描程序读取文件时,程序中出现运行时异常。 我的代码是: 问题答案: 与你需要检查,如果存在与下一行 所以循环变成 是读者返回null 当然在这段代码中,这取决于输入的格式是否正确

  • 问题内容: 我正在尝试从链接列表中删除特定节点。我试图调用我的方法removeNode,但是当我调用它来获取用户输入时,它给了我这个错误。任何有关如何解决此问题的建议将不胜感激! LinkedList类: fileIn类别: 问题答案: 问题是您要关闭( 关闭基础流)。一旦执行此操作,它将保持关闭状态,并且无法输入。您通常不希望使用标准输入来执行此操作: 另外,为了将来参考,您应该尝试创建更多的最

  • 我已经安装了使用: 当我尝试使用命令时,例如: 我得到了zsh错误: 未找到命令:rasa错误 我在Mac OS Catalina上,使用: Python version Python3 version pip version 我的变量如下所示:

  • 根据GitHub API文档,我正在请求repo范围,该范围允许访问私有存储库。 用户将看到以下对话框,其中也提到了私有回购。他们接受申请。 尽管如此,当使用请求'repo'访问时获得的oauth访问令牌时,我只能在获得https://api.github.com/users/someusername/repos时看到公共repos。未显示私人回购。 用户帐户是我自己的,我没有撤销访问权限。 如何

  • 我正在尝试用单节点hadoop集群运行一个示例程序。我在运行示例程序(jar文件)时遇到一个异常。 多谢了。