Java序列化与纯文本文件
我有点困惑。让我们假设我有一个游戏,其中包括一些瓷砖和球员。所有这些对象都需要保存,以便我以后可以启动游戏并恢复状态。我已经使用简单的文件(如XML文件或纯文本文件)完成了这项工作,我只需将平铺类型和坐标打印到文件中,然后根据文本文件中的信息读取、解析和创建新对象Java序列化与纯文本文件,java,file,serialization,io,Java,File,Serialization,Io,我有点困惑。让我们假设我有一个游戏,其中包括一些瓷砖和球员。所有这些对象都需要保存,以便我以后可以启动游戏并恢复状态。我已经使用简单的文件(如XML文件或纯文本文件)完成了这项工作,我只需将平铺类型和坐标打印到文件中,然后根据文本文件中的信息读取、解析和创建新对象 我的问题是,当我可以将对象的属性保存到文本文件中时,为什么要序列化对象?很多游戏都是用文本文件来序列化它们的对象吗?有什么好处吗?我可以想象序列化保存了对象的一个实例,这样以后就不必像创建文本文件那样创建新的对象实例。但是我真的不知道
我的问题是,当我可以将对象的属性保存到文本文件中时,为什么要序列化对象?很多游戏都是用文本文件来序列化它们的对象吗?有什么好处吗?我可以想象序列化保存了对象的一个实例,这样以后就不必像创建文本文件那样创建新的对象实例。但是我真的不知道 在java中序列化的主要好处是,您不必像现在这样手动读取/写入文件。您只需要实现接口,java就可以处理它 下面是一个很好的Java序列化教程:
您正在序列化对象。您只是自己做,而不是使用库/框架来做。序列化没有什么好处,而且可能非常冗长。不过,最好使用某种“结构化”文件——CSV、XML、JSON等。JSON是一个很有吸引力的选择,因为有很好的工具可以从Java对象转换到Java对象(虽然只是一个很小的学习曲线)。第1点非常值得怀疑,Java序列化对象通常(总是?)比简单的自定义表单大(请参阅)。第3点也是没有意义的,因为像OP这样的自定义序列化可以选择是否要保存静态字段。