只做了簡短的閱讀,試圖在我的代碼中實現序列化。使用java序列化對象
基本上,我有一個Test
類,持有一堆Questions
。如果可能的話,我想要一次對整個Test
對象進行序列化,或者如果不是每個對象Question
。現在我正在嘗試做每個Question
。
public abstract class Question implements Serializable {
...
}
public class Test {
...
public void save() {
try {
System.out.print("File name will be saved.ser: ");
FileOutputStream fileOut = new FileOutputStream("saved.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
for (Question question : questionList) {
out.writeObject(question);
}
out.close();
fileOut.close();
} catch(IOException i) {
i.printStackTrace();
}
}
然後它給出了這樣的錯誤:
java.io.NotSerializableException: java.util.Scanner
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)
at main.Survey.save(Survey.java:129)
at main.MainDriver.main(MainDriver.java:59)
是不是在Question
每一個對象實現Serializable
問題?這是否也需要完成?這看起來很乏味,但我會在必要時做。我的所有課程都使用Question
,包括它的子類,需要給這個接口嗎?
另外,我會更好在我的主要方法序列化整個Test
對象?
將問題類的整個代碼 –