我使用ObjectOutputStream(FileOutputStream(File))
序列化我的對象,並用類似的InputStreams
對它們進行反序列化。有沒有辦法查看這些序列化文件的內部(最好在eclipse中),所以我可以檢查是否寫入了所有必要的屬性?Eclipse是否有用於java序列化文件的編輯器/查看器?
編輯:谷歌搜索是負
我使用ObjectOutputStream(FileOutputStream(File))
序列化我的對象,並用類似的InputStreams
對它們進行反序列化。有沒有辦法查看這些序列化文件的內部(最好在eclipse中),所以我可以檢查是否寫入了所有必要的屬性?Eclipse是否有用於java序列化文件的編輯器/查看器?
編輯:谷歌搜索是負
寫一些測試(使用Eclipse的內置JUnit支持)。
除非你是一個字節碼大師並使用十六進制編輯器,否則「查看」這些文件的唯一方法是使用ObjectInputStream(FileInputStream(File))
。如果你真的有一些測試,就沒有必要「查看」任何東西。
+1爲堅持測試是驗證序列化的正確方法。 – rfeak 2011-02-03 19:00:04
編寫一個加載文件並反序列化對象的類。然後使用Eclipse的調試視圖來瀏覽對象(通過設置斷點)。
這不是一個「獨立」的答案,只是OrangeDog答案的擴展。
「寫一些測試(使用Eclipse的內置JUnit支持)。」
如果你想測試序列,然後寫測試,請執行以下操作:
雖然這不是一個完整的編輯器,但Eamonn McManus編寫了一個代碼轉換器,它將序列化的blob解譯爲人類可讀的形式。 http://weblogs.java.net/blog/2007/06/12/disassembling-serialized-java-objects
如果二進制兼容性和性能是考慮因素,那麼這將是查看Externalizable而不是Serializable的好時機。
我想你的意思是相反的。 – OrangeDog 2011-02-03 17:57:21
謝謝,我已經更新了我的問題;) – kulpae 2011-02-04 07:40:40
知道這是如此愚蠢,但...雙擊Eclipse(至少Luna和.ser作爲擴展名)顯示對象使用默認toString() – Manu 2015-01-07 16:15:45