有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

while循环java扫描器下一行抛出,但仅与print语句一起抛出

当我尝试使用java scanner时,它可以工作,在我的列表中,我将所有文本文件内容作为一个列表。 但是当我尝试在while循环中打印时,它抛出 JAVAutil。NoSuchElementException:未找到行 最后一行出现异常。为什么会是这样,如果mylist超出了范围,它不会也被抛出吗

try {
        Scanner myscanner = new Scanner(new FileReader(myfilepath));
        while(myscanner.hasNextLine()){
            //System.out.println(myscanner.nextLine() );
            mylist.add(myscanner.nextLine()); 
            numline += 1;
        }
        myscanner.close();
    }
    catch (Exception ex) {
           ex.printStackTrace();
        }

共 (2) 个答案

  1. # 1 楼答案

    为了避免这种情况,您应该创建变量来存储myscanner的结果。nextLine()然后打印它并将其添加到列表中。e、 g

     while(myscanner.hasNextLine()){
            String temp = myscanner.nextLine();
            System.out.println(temp);
            mylist.add(temp); 
            numline += 1;
        }
    
  2. # 2 楼答案

    您检查是否有下一行,然后在打印时阅读2行

    您应该将其更改为:

    String line = myscanner.nextLine();
    // print and add to list using line variable