首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java序列化和引用

Java序列化和引用
EN

Stack Overflow用户
提问于 2014-12-17 00:09:16
回答 3查看 110关注 0票数 0

假设我有一个用来保存游戏状态的序列化类。该序列化文本存储在文本文件中。如果我重新启动计算机,重新安装java,等等。如果我尝试反序列化文本,它会保存它引用所有内容吗?出于提问的目的,假设该类有多个包含实体和映射元素的ArrayList。类->序列化->文本文本->反序列化->类

EN

回答 3

Stack Overflow用户

发布于 2014-12-17 00:51:00

只要序列化的类不改变它的定义,就不会有任何问题。您甚至可以将这些序列化文件移动到另一个操作系统,该操作系统将反序列化为相同的类定义,并且它将不会有任何问题(除非您使用特定于操作系统的库,因此破坏了可移植性)。

票数 1
EN

Stack Overflow用户

发布于 2014-12-17 00:49:13

无论是否重新安装Java或重新启动计算机,序列化后的文件都将保持其状态。否则它将是非常无用的:序列化的要点是以持久的形式捕获状态,以便以稍后可以重新创建该状态的方式进行存档或传输。

因此,假设您正在使用的序列化方法最初保存了您所关心的所有引用,那么您将始终能够从该序列化数据中恢复该对象及其所有引用。除非您在五年内尝试使用不再支持该序列化格式或其他格式的新版本Java。

票数 0
EN

Stack Overflow用户

发布于 2014-12-17 00:58:03

你对标准java序列化机制感兴趣吗?Java序列化机制将数据序列化为二进制格式,而不是文本。Java保证不同版本之间的序列化/反序列化,直到您使用standart java库。所以,是的,在您的情况下,序列化将会很好地工作。

但是,我不确定standart java序列化是否适合您的目的。因为:

  • 这是完全不可读的格式。
  • 如果您稍后要更改语言,则必须完全重新实现保存格式。

作为替代方案,您可以使用一些用于java的xml序列化库。在这种情况下,保存文件将具有可读格式(便于调试)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27509682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档