Java 序列化和纯文本文件

Java 序列化和纯文本文件

Java 序列化和纯文本文件

javafileserializationio

Java 序列化 vs 纯文本文件,java,文件,序列化,io,Java,File,序列化,io,我有点糊涂了。假设我有一个包含一些图块和玩家的游戏。所有这些对象都需要保存,以便我可以稍后启动游戏并恢复状态。我已经使用 XML 文件或纯文本文件等简单文件完成了此操作,我只需将图块类型和坐标打印到文件中,然后根据文本文件中的信息读取、解析和创建新对象我的问题是为什么要序列化什么时候可以将对象的属性保存到文本文件中?许多游戏使用文本文件来序列化它们的对象吗?有什么好的?我可以想象序列化保存了对象的一个​​实例,这样以后我就不必像文本文件那样创建对象的新实例了。但我真的不知道

我有点困惑。假设我有一个包含一些图块和玩家的游戏。所有这些对象都需要保存,以便我可以稍后启动游戏并恢复状态。我已经使用 XML 文件或纯文本文件等简单文件完成了此操作unity 序列化什么意思,我只需将图块类型和坐标打印到文件中,然后根据文本文件中的信息读取、解析和创建新对象

我的问题是,当我可以将对象的属性保存到文本文件时,为什么还要序列化它?许多游戏使用文本文件来序列化它们的对象吗?有什么好的?我可以想象序列化保存了对象的一个​​实例,这样以后我就不必像文本文件那样创建对象的新实例了。但我真的不知道

Java 中序列化的主要好处是您不必像现在这样手动读取/写入文件。您只需要实现接口,java 会处理它

这里有一个很好的Java序列化教程:

我猜想序列化会把内容写成二进制格式,所以会消耗更少的资源。空格大于对应的文字

可以直接从序列化文件中获取java对象

使用序列化时不保存静态变量状态

您很快就会通过 UID 进行版本控制,您不需要额外的代码来序列化对象。你只是自己做,而不是使用库/框架。序列化几乎没有什么好处,而且可能非常冗长。不过,最好使用某种“结构化”文件 - CSV、XML、JSON 等。JSON 是一个有吸引力的选择,因为有很好的工具可以将 Java 对象转换为 Java 对象(尽管学习曲线很小)。第 1 点非常值得怀疑unity 序列化什么意思贴图笔刷,Java 序列化对象通常(总是?)大于简单的自定义表单(请参阅)。第 3 点也没有意义,因为像 OP 这样的自定义序列化可以选择是否保存静态字段。