【发布时间】:2014-01-05 18:22:34
【问题描述】:
这是我的代码的基础。它在控制台上打印学生成绩,但我如何使用 Buffereader 将所有学生成绩放在一个新文件中。
import java.io.*;
import java.util.InputMismatchException;
import java.lang.*;
import java.util.*;
public class WorkSpace {
private Scanner x;
public void openFile(){
try{
x = new Scanner (new File ("grades.txt"));
}
catch(Exception e){
System.out.println("could not find file");
}}
public void createFile()throws IOException {
try{
File file = new File("grades.txt");
Scanner s = new Scanner(file);
while(s.hasNext()){
{
String [] split = s.nextLine().split(", ");
String fname = split[0];
Double q1 = Double.parseDouble (split[1]);
Double q2 = Double.parseDouble (split[2]);
Double q3 = Double.parseDouble (split[3]);
Double q4 = Double.parseDouble (split[4]);
Double proji = Double.parseDouble (split[5]);
Double projii = Double.parseDouble (split[6]);
Double projiii = Double.parseDouble (split[7]);
double studentgrade = (q1 *0.1) + (q2 *0.1) +(q3 *0.1) + (q4 *0.1) +(proji*0.15) + (projii * 0.2) + (projiii *0.25);
if(studentgrade>90)
System.out.printf("%s got an A\n", fname);
else if(studentgrade>80)
System.out.printf("%s got a B\n", fname);
else if(studentgrade>70)
System.out.printf("%s got a C\n", fname);
else if(studentgrade>60)
System.out.printf("%s got a D\n", fname);
else if(studentgrade>50)
System.out.printf("%s got a F\n", fname);
}}}catch(Exception e){
e.printStackTrace();
}
}
public void closeFile(){
x.close();
}
【问题讨论】:
-
你遇到了什么错误?
-
线程“main”中的异常 java.util.InputMismatchException 在 java.util.Scanner.throwFor(Scanner.java:909) 在 java.util.Scanner.next(Scanner.java:1530) 在java.util.Scanner.nextInt(Scanner.java:2160) 在 java.util.Scanner.nextInt(Scanner.java:2119) 在 ReadFile.readFile(ReadFile.java:22) 在 Project3.main(Project3.java:15 )
-
从上面,类 Project3 没有调用 readFile()。你从哪里得到那个错误?为您的项目提供适当的堆栈跟踪。
标签: java file-io bufferedreader