我試圖從txt文件中讀取學生的地圖,之後我向地圖中添加一個新學生(現在比以前更大)並將其保存迴文件。關閉程序並重新加載文件中的數據後,新學生未保存。難以將文件寫入文件
HashMap<String, Student> studentObj = new HashMap<>(SIZE);
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(DEFAULT_FILE_NAME));
studentObj = (HashMap<String, Student>) in.readObject();
studentObj.put(student.getStudentID(), student);
ObjectOutputStream out;
out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(DEFAULT_FILE_NAME)));
out.writeObject(studentObj);
out.flush();
System.out.println("here " + studentObj.size());
in.close();
out.close();
} catch (IOException e) {
throw new Exception("FILE IS NOT CREATED");
} catch (ClassNotFoundException e) {
throw new Exception("CLASS NOT FOUND EXCPETION");
}
打印異常的堆棧跟蹤:'e.printStackTrace()'。這會告訴你遇到的問題。 –
我建議處理數據並保存,例如作爲文本文件而不是使用ObjectOutputStream。你可以for循環,將數據保存到數組中,並以一種可以讓你再次正確讀取它們的方式保存它們。 – xdevs23
捕捉各種異常然後將它們作爲基本異常拋出並沒有真正的意義。要麼處理這些異常,要麼讓你的方法拋出那些特定的異常,或者簡單地拋出異常,如果你不關心它們是什麼類型的話。如果您打印異常的堆棧跟蹤,那麼您將看到問題所在。 – ManoDestra