2017-10-11 55 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; 
    }