假设我有一个用来保存游戏状态的序列化类。该序列化文本存储在文本文件中。如果我重新启动计算机,重新安装java,等等。如果我尝试反序列化文本,它会保存它引用所有内容吗?出于提问的目的,假设该类有多个包含实体和映射元素的ArrayList。类->序列化->文本文本->反序列化->类
发布于 2014-12-17 00:51:00
只要序列化的类不改变它的定义,就不会有任何问题。您甚至可以将这些序列化文件移动到另一个操作系统,该操作系统将反序列化为相同的类定义,并且它将不会有任何问题(除非您使用特定于操作系统的库,因此破坏了可移植性)。
发布于 2014-12-17 00:49:13
无论是否重新安装Java或重新启动计算机,序列化后的文件都将保持其状态。否则它将是非常无用的:序列化的要点是以持久的形式捕获状态,以便以稍后可以重新创建该状态的方式进行存档或传输。
因此,假设您正在使用的序列化方法最初保存了您所关心的所有引用,那么您将始终能够从该序列化数据中恢复该对象及其所有引用。除非您在五年内尝试使用不再支持该序列化格式或其他格式的新版本Java。
发布于 2014-12-17 00:58:03
你对标准java序列化机制感兴趣吗?Java序列化机制将数据序列化为二进制格式,而不是文本。Java保证不同版本之间的序列化/反序列化,直到您使用standart java库。所以,是的,在您的情况下,序列化将会很好地工作。
但是,我不确定standart java序列化是否适合您的目的。因为:
作为替代方案,您可以使用一些用于java的xml序列化库。在这种情况下,保存文件将具有可读格式(便于调试)。
https://stackoverflow.com/questions/27509682
复制相似问题