2017-10-19 55 views
0

我正在寫一個程序,從名爲「grades.txt」的文件讀取並顯示學生的姓名,三等級,以及這三個等級的平均值。 文本文件看起來像這樣:Java - 從文件讀取 - 錯誤「線程中的異常」主「java.util.NoSuchElementException:沒有找到行」

Bobby 
Doe 
65 
65 
65 

Billy 
Doe 
100 
100 
95 

James 
Doe 
85 
80 
90 

下面是代碼: (代碼工作,我能夠從文件和輸出的一切正確讀取。)

import java.util.Scanner; // Needed for Scanner class. 
import java.io.*;   // Needed for I/O class. 

public class TestScoresRead 
{ 
    public static void main(String[] args) throws IOException 
    { 

     // Open the file 
     File file = new File("Grades.txt"); 
     Scanner inputFile = new Scanner(file); 

     // Read lines from the file 
     while (inputFile.hasNext()) 
     { 
     String firstName = inputFile.next(); 
     String lastName = inputFile.next(); 
     double grade1 = inputFile.nextDouble(); 
     double grade2 = inputFile.nextDouble(); 
     double grade3 = inputFile.nextDouble(); 
     String nextLine = inputFile.nextLine(); 

     int total = (int)grade1 + (int)grade2 + (int)grade3; 
     int average = total/3; 


     System.out.println("Name: \t" + firstName + " " + lastName); 
     System.out.println("Test 1:\t" + grade1); 
     System.out.println("Test 2: \t" + grade2); 
     System.out.println("Test 3: \t" + grade3); 
     System.out.println(""); 
     System.out.println("Average: " + average); 

      if (average < 60) 
      System.out.println("Grade : \t F"); 

      else if (average < 70) 
      System.out.println("Grade : \t D"); 

      else if (average < 80) 
      System.out.println("Grade: \t C"); 

      else if (average <90) 
      System.out.println("Grade: \t B"); 

      else 
     System.out.println("Grade: \t A"); 

     System.out.println(""); 

     } 
     inputFile.close(); 
    } 
} 

然而,我一直得到這個錯誤,我不知道爲什麼:

Exception in thread "main" java.util.NoSuchElementException: No line found 
at java.util.Scanner.nextLine(Scanner.java:1540) 
at TestScoresRead.main(TestScoresRead.java:21) 

從我所做的研究,我相信我t與從nextLine到nextDouble有關,而/ n被卡在鍵盤緩衝區中。 或者,也許我不使用hasNext權利? 有沒有人有任何建議如何解決錯誤? 感謝先進!

回答

0

刪除此行

String nextLine = inputFile.nextLine(); 
+0

我不知道我錯過了,但那是修復。謝謝!! –

相關問題