2017-10-11 49 views
-1

当我尝试使用java扫描器它的作品,并在我的列表中我将所有的文本文件内容作为列表。 但是,当我尝试在while循环内打印时,它会抛出 java.util.NoSuchElementException:在最后一行没有找到行 异常。为什么会出现这种情况呢,如果它出界了,它们会不会抛出?java扫描器下一行抛出,但只与打印语句

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(); 
     } 

回答

1

您检查是否有下一行,然后当你打印你读线。

您应将其更改为:

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

为了避免这种情况,你应该创建变量来存储结果FO myscanner.nextLine(),然后打印出来,并把它添加到列表中。例如

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