0
public void writeObject(String outFile) {
try {
FileOutputStream fos = new FileOutputStream(outFile);
ObjectOutputStream oos = new ObjectOutputStream(fos);
Student[] copy = this.getStudents();
for (Student st : copy){
oos.writeObject(st);}
oos.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
上面的代碼是我用來序列化存儲庫內容的函數,getStudens()
返回的是我的數據數組。序列化問題
public void readSerialized(String fileName) throws Exception {
FileInputStream fis = new FileInputStream(fileName);
ObjectInputStream ois = new ObjectInputStream(fis);
while(fis.available()>0){
ctrl.addC((Student) ois.readObject());}
ois.close();
}
這是我的反序列化功能是,它不會重新創建我在庫中有當我第一次序列化的數據。 我有什麼在倉庫系列化前:
1 a 4.0 6.0
2 b 10.0 10.0
3 c 2.0 2.0
4 d 8.0 2.0
5 e 6.0 2.0
什麼反序列化回報:
0 3.0
0 5.0
這是否意味着我的序列化功能不正確或當我反序列化出錯?
試過這個,但是當我再次在屏幕上打印時,它不會顯示字符串'a','b'等等,只有數字 – Matt
我的猜測是您正在嘗試打印String [ ]'應該看起來像'[String @ 7ef27456'這與串行化無關,但array.toString()實際上是無用的。我建議打印'Arrays.toString(複製)' –
這意味着你可以無阻塞地閱讀。這可能意味着兩個系統調用,而不是一個。 – EJP