Skip to content
Advertisement

Reading from File – Error “Exception in thread “main” java.util.NoSuchElementException: No line found”

I am writing a program that reads from a file titled “grades.txt” and displays the student’s name, three grades, and the average of those three grades.

The text file looks like this:

Bobby
Doe
65
65
65

Billy
Doe
100
100
95

James
Doe
85
80
90

Here is the code. I am able to read from the file and output everything correctly.

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

However, I keep getting this error and I am not sure why:

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

From the research I’ve done, I believe it has something to do with going from nextLine to nextDouble, and the n being stuck in the keyboard buffer.

Or maybe I’m not using hasNext right?

How can I fix the error?

Advertisement

Answer

remove this line

String nextLine = inputFile.nextLine();
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement