* * .gz文件是在我使用的軟件包的先前版本(它具有類tratz.semantics.ClassificationBundle)下創建的。在當前版本中,該類名爲miacp.semantics.ClassificationBundle。兩人有相同的成員。有什麼方法可以讓更早的版本在更高版本中可讀?基本讀取功能是從GZipped文件中讀取對象的ClassNotFoundException
ClassificationBundle bundle = (ClassificationBundle) ois.readObject();
我有早期版本,所以我可以讀取該版本中的文件。但是,我將如何創建一個可以在新版本中讀取的新文件?
你已經被咬過一次了:我會停止使用Java序列化進行長期存儲。例如,使用JSON或XML等更具可讀性,可自定義的可移植機制,任何使用任何語言的任何具有任何庫版本的程序都能夠讀取。而且任何文本編輯器都可以編輯。 –
這些文件相當大(50MB到90MB);我正在加載其中五個。數據結構非常複雜。 – Ken
如果'miacp'軟件包與'tratz'軟件包不衝突,你應該可以將兩個軟件包放在同一個類路徑中。編寫一個實用程序,將'tratz.semantics.ClassificationBundle'對象的內容複製到新的'miacp.semantics.ClassificationBundle'對象中。 – flakes