我正在创建一个程序,它可以创建指定数量的类中的成绩日志,并将此数据写入文本文件。它写日期,班级名称,成绩(或至少应该),和结束语。出于某种原因,我无法弄清楚,我的程序只打印日期和课程名称。有任何想法吗?BufferedWriter打印不正确?
下面的代码:
BufferedWriter data = null; //Writes Output
try {
File log = new File ("Grade.txt"); //Name of File
FileWriter fileWriter = new FileWriter (log, true); //Appends File
data = new BufferedWriter (fileWriter); //Creates BufferedWriter
Date date = new Date(); //Sets Date
//Code here makes an array of class names
System.out.print ("Enter Assignment Name: ");
title = reader.nextLine();
data.write (title);
data.newLine(); //Blank Line
reader.nextLine(); //Consume Input
System.out.print ("Enter Points Possible: ");
temp = reader.nextInt();
if (temp < 0){
throw new ArithmeticException ("");
}else{
poss += temp;
data.write(poss);
}//Close If
System.out.print ("Enter Points Earned");
temp = reader.nextInt();
if (temp < 0){
throw new ArithmeticException ("");
}else{
earn += temp;
data.write(earn);
}//Close If
不关闭它只是消耗系统资源,它不应该导致写入文件的问题。 – syb0rg 2013-03-22 00:55:14
也许,但Java并不能保证一个对象的终结器会被调用。如果作者的终结器没有被调用,那么它不一定会刷新它的缓冲区。 – dsh 2013-03-22 01:00:25
我并不认为你不应该“关闭”流,但这不是OP问题的原因。 – syb0rg 2013-03-22 01:02:35