Java运行时错误:util.scanner类

时间:2022-11-06 17:39:16

Please help me to write content from one text file to another. I have written a code already but I am not getting the correct output as expected.

请帮我把内容从一个文本文件写到另一个文本文件。我已经编写了代码,但是我没有按预期获得正确的输出。

import java.io.*;
import java.util.*;

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws FileNotFoundException{
        // TODO code application logic here

      double m1, m2, m3, m4, m5, total, t, avg;
      int i;
      String fname;
      t=0;
      fname = "";
      Scanner infile = new Scanner(new FileReader("C:\\111\\students.txt"));
      PrintWriter outFile = new PrintWriter("C:\\111\\prog.txt");



    //  System.out.println(fname);
     // System.out.println(fname);

     System.out.println("STUDENTS MARK LIST");
     outFile.println("STUDENTS MARK LIST");
     System.out.println("**********************************************");
     outFile.println("**********************************************");
      for (i=0; i <5 ; i++)
      {
      fname = infile.next();
      outFile.println("Student Name: " + fname);
      m1 = infile.nextDouble();
       m2 = infile.nextDouble();
       m3 = infile.nextDouble();
       m4 = infile.nextDouble();
       m5 = infile.nextDouble();
       total = m1+m2+m3+m4+m5;
              avg = total /5;
              t = t+avg;
        System.out.println ("STUDENT NAME: " + fname);
        outFile.println ("STUDENT NAME: " + fname);
        System.out.printf ("Mark 1: %5.2f %n", m1);
        System.out.printf ("Mark 1: %5.2f %n", m1);
        System.out.printf ("Mark 2: %5.2f %n", m2);
        outFile.printf ("Mark 2: %5.2f %n", m2);
        System.out.printf ("Mark 3: %5.2f %n", m3);
        outFile.printf ("Mark 3: %5.2f %n", m3);
        System.out.printf ("Mark 4: %5.2f %n", m4);
        outFile.printf ("Mark 4: %5.2f %n", m4);
        System.out.printf ("Mark 5: %5.2f %n", m5);
        outFile.printf ("Mark 5: %5.2f %n", m5);
        System.out.printf ("Total: %5.2f %n", total);
        outFile.printf ("Total: %5.2f %n", total);
        System.out.printf ("Average Score: %5.2f %n", avg);
        outFile.printf ("Average Score: %5.2f %n", avg);
        System.out.println("**********************************************");
        outFile.println("**********************************************");
      }
     t = t/5;
      System.out.printf ("Average Mark of Five Students: %5.2f  %n", t);
      outFile.printf ("Average Mark of Five Students: %5.2f  %n", t);
      System.out.println("**********************************************");
      outFile.println("**********************************************");
        infile.close(); //Step 10
        outFile.close();
    }

}

Error: at java.util.Scanner.throwFor(Scanner.java:838)
        at java.util.Scanner.next(Scanner.java:1347)
        at studenttestscore.Main.main(Main.java:42)

1 个解决方案

#1


0  

Probably you have one student per line: put a inFile.nextLine() after m5 = infile.nextDouble();

可能你每行有一个学生:在m5 = infile.nextDouble()之后放一个inFile.nextLine();

#1


0  

Probably you have one student per line: put a inFile.nextLine() after m5 = infile.nextDouble();

可能你每行有一个学生:在m5 = infile.nextDouble()之后放一个inFile.nextLine();