2014-04-01 44 views
0

我有几个对象,我已序列化,现在需要编辑,是否有一种方法,而不会丢失我使用序列化存储在文件中的所有数据。序列化和反序列化

编辑 [来自评论]我不需要编辑对象本身我需要编辑对象代码,如添加方法。

+1

你能澄清吗? –

+0

如果你正在谈论的话,你将很难编辑序列化的流。如果不是,你的问题仍然不清楚。 – EJP

回答

2

我不需要编辑的对象本身我需要编辑对象的代码,如添加方法,它

啊哈。一个实际的问题。好。

  1. 运行serialver实用的.class文件,因为他们现在的样子。

  2. serialver输出的声明分别添加到每个类的源代码中。

  3. 仔细看看Versioning chapter of the Object Serialization Specification,看看你能做什么,不能做什么,同时保持与现有流的兼容性。

+0

+1了解实际问题:) –

+0

@ peter.petrov嗯,它花了6个问题来引出它。这就像拉牙。 – EJP

+0

对不起,我应该更清楚地感谢你坚持我。您在第3号发给我的链接并没有说明添加或删除方法的任何内容,或者我错过了它。那么我可以将方法添加到序列化的类中吗? – Brent

1

加载内存中的对象,编辑对象本身,然后将它们保存回来。
这是最安全的方法(如果不是唯一的方法)。

+0

好吧,在编译器中,我应该在调试模式下运行它,然后编辑并重新保存对象? – Brent

+0

不需要处于调试模式。只需从磁盘加载你的对象,改变它们(用你想要设置的任何值),将它们保存回磁盘。 –

+0

@BrentColeman在编译器中?你是指IDE吗? IDE与它有什么关系?在你的问题中提到了哪里?你的问题是什么? – EJP