我正在尋找一種方法來輸出一個實例化的類,一個對象到一個文件。我曾嘗試使用FileStream,它似乎沒有工作。經過研究,似乎我需要使用一種稱爲「序列化」的技術。我完全失去了這個話題。有人請爲我調試此代碼嗎?我有一個預感到問題正在發生,因爲我試圖在正常類中序列化一個抽象類。抽象類是java.util.Calendar。輸出對象到文件
class CalendarL implements java.io.Serializable{
private static final long serialVersionUID = 1L;
java.util.Calendar calendar;
CalendarL (int date, int month, int year){
calendar.set (Calendar.DATE, date);
calendar.set (Calendar.MONTH, month);
calendar.set (Calendar.YEAR, year);
}
}
class IO {
protected CalendarL reader() throws IOException, ClassNotFoundException{
FileInputStream data = new FileInputStream("data.dat");
ObjectInputStream dataObject = new ObjectInputStream(data);
CalendarL calendar = (CalendarL)dataObject.readObject();
dataObject.close();
data.close();
return calendar;
}
protected void output(CalendarL calendar) throws IOException, WriteAbortedException, NotSerializableException {
new FileOutputStream("data.dat").close();
FileOutputStream data = new FileOutputStream("data.dat");
ObjectOutputStream dataObject = new ObjectOutputStream(data);
dataObject.writeObject(calendar);
dataObject.close();
data.close();
}
}
這是錯誤我得到:
Exception in thread "main" java.io.NotSerializableException: hotelres.ClientL
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
對不起,我忘了包括錯誤。 – Nyx
你確定關於構造函數嗎? –
IMO,您應該將timestamp值存儲爲'long'或'java.util.Date'而不是'Calendar'。 – Genzer