我正在創建一個程序,它可以創建指定數量的類中的成績日誌,並將此數據寫入文本文件。它寫日期,班級名稱,成績(或至少應該),和結束語。出於某種原因,我無法弄清楚,我的程序只打印日期和課程名稱。有任何想法嗎?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