我在使用objectInputStream從文件讀取數據時遇到問題。請在下面找到ObjectInputStream處理classNotFoundException
File file = new File("model.pst")
if (file.exists()) {
fis = new FileInputStream(file);
in = new ObjectInputStream(fis);
input = (List<GlobalModel>) in.readObject();
in.close();
}
我從ObjectOutputStream的http://docs.oracle.com/javase/6/docs/api/java/io/ObjectOutputStream.html文檔要知道,雖然寫對象的文件,他默認的對象序列化機制的代碼編寫的對象的類,類簽名,以及所有非瞬態和非靜態字段的值。我有一個問題,即在將對象寫入文件之後類名已更改,並且當我使用上述代碼讀取值時,它拋出了一個classNotFound異常。我想知道是否有辦法,我可以處理這個異常,即一旦涉及到異常塊,我可以將正在讀取的對象中的類名替換爲新的類名並使其工作?
請協助。由於提前
道德:不改在序列化它的實例之後的類名。除非您已閱讀並理解對象序列化規範的對象版本控制章節,否則請勿更改*任何內容。你可以改變很多東西。這不是他們之一。 – EJP