2011-03-29 74 views
0

请帮我将内容从一个文本文件写入另一个文本文件。我已经写了一个代码,但我没有按预期得到正确的输出。Java运行时错误:util.scanner类

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) 
+2

显然,你正试图从那里有没有一个文件中读取'double'。你能描述输入文件的格式吗? – 2011-03-29 13:43:46

+0

这不是整个错误。 – 2011-03-29 13:48:22

回答

0

也许你有每行一个学生:把后inFile.nextLine()m5 = infile.nextDouble();

+0

输入文本文件(students.txt)的内容如下[由每个学生之间的新行隔开]:Karthikk 1254 1258 1260 1264 1258 Bhuvana 1255 1258 1266 1358 1258 Dharikha 1256 1248 1500 1458 1456 Samrudha 1257 1358 1452 1500 1425 – Bhuvana 2011-03-30 04:37:06