C++串行化的问题?

我要做一个小游戏,如果游戏需要保存配置,如:绑定的按键而且串行化可以把对象的数据保存在磁盘文件中。那么用串行化来保存绑定的按键好,还是用文件读写好。哪个更快,那个更安全?... 我要做一个小游戏,如果游戏需要保存配置,如:绑定的按键
而且串行化可以把对象的数据保存在磁盘文件中。
那么用串行化来保存绑定的按键好,还是用文件读写好。
哪个更快,那个更安全?
或者是其他的保存方式。
展开
 我来答
桐花万里飞雏凤
2023-04-27 · 教育类相关问题,来这里,也许能帮你
桐花万里飞雏凤
采纳数:53 获赞数:27

向TA提问 私信TA
展开全部

对于保存游戏配置这种需求,使用串行化和文件读写都可以实现。下面是一些关于两种方式的优缺点,以及其他可能的保存方式。

一、串行化

使用串行化可以将整个配置对象存储到磁盘上,这样可以方便地进行保存和加载。使用 Java 中的序列化或者 JSON、XML 等通用的格式,可以比较方便地进行读写操作。但是,使用 Java 中的序列化要求对象必须实现 Serializable 接口,并且存在一些安全风险。

优点:

1.方便进行保存和加载。

2.保存的数据可以加密和压缩。

3.可以保存任意 Java 对象的状态。

缺点:

1.需要实现 Serializable 接口,有些限制。

2.Java 序列化存在安全问题。

3.对于较大的对象,序列化和反序列化可能会比较慢。

二、文件读写

使用文件读写可以将游戏配置保存到一个文件中,可以使用文本文件或二进制文件,具体取决于保存的数据类型。使用 Java 中的 I/O 操作可以比较方便地进行读写操作。

优点:

1.可以保存任意格式的数据,不限于 Java 对象。

2.操作相对简单,不需要额外的接口。

缺点:

1.需要手动编写读写操作。

2.需要注意文件读写的线程安全问题。

3.如果需要保存多个对象或数据结构,需要手动进行组织和解析。

三、其他方式

除了上述两种方式,还可以考虑使用数据库进行保存,或者使用一些第三方库来实现配置保存功能。

优点:

1.可以方便地进行数据组织和查询。

2.可以提供比较安全的数据存储。

3.一些第三方库可能提供了更便捷的接口。

缺点:

1.数据库需要进行额外的配置和管理。

2.第三方库可能存在一些限制或不稳定因素。

总的来说,使用哪种方式取决于具体情况和需求。如果需要保存的数据较小,且只需要保存少量配置信息,可以考虑使用文件读写。如果需要保存的数据较大,或者需要保存的对象需要复杂的组织结构,可以考虑使用串行化或数据库等方式。同时,为了保证数据安全,可以使用加密或者其他方式进行保护。

199******49
2023-04-27
知道答主
回答量:9
采纳率:0%
帮助的人:5334
展开全部
对于保存游戏配置,使用串行化和文件读写都是可行的方式。两种方式都有自己的优点和缺点,需要根据实际情况来选择。
使用串行化的优点是可以将对象的数据直接保存在磁盘文件中,便于后续的读取和使用。而且,一些现成的库(例如 Boost 库中的序列化模块)可以很方便地实现对象的序列化和反序列化,减少了编写代码的工作量。此外,使用串行化可以保证数据的完整性和一致性,避免了数据格式的错误或损坏。
使用文件读写的优点是更加灵活,可以将数据保存到不同的文件中,甚至可以将数据保存到数据库中。此外,使用文件读写可以更好地控制数据的格式和存储方式,可以更好地保证数据的可读性和可维护性。此外,使用文件读写也可以减少对库和第三方组件的依赖。
总体来说,如果你的游戏配置比较简单,仅包含少量的数据,那么使用文件读写可能更为简单和方便。但如果游戏配置比较复杂,需要保存大量的数据,并且需要保证数据的完整性和一致性,那么使用串行化可能更为可靠和安全。
无论使用哪种方式,都需要注意数据的格式和类型,并注意数据的正确性和安全性。此外,也需要注意对数据进行加密或者压缩处理,以保证数据的安全性和保密性。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
认真答却总被删BAIDU我凭什么同情你
2023-04-27 · TA获得超过444个赞
知道小有建树答主
回答量:1800
采纳率:79%
帮助的人:100万
展开全部

在你的情况下,保存游戏配置(如绑定的按键)可以选择序列化(串行化)或文件读写。以下是关于这两种方法的比较:

  • 序列化:
    优点:

  • 可以更方便地处理复杂数据结构,例如对象和数组。

  • 序列化库(如Boost.Serialization,cereal等)会处理类型安全和兼容性问题。

  • 缺点:

  • 序列化的数据可能不易阅读,因为它是为了机器存储和恢复数据。

  • 序列化库可能会增加程序的复杂性和二进制文件大小。

  • 文件读写:
    优点:

  • 可以生成人类可读的配置文件,如XML、JSON或简单的文本文件。

  • 文件读写通常比序列化更快,因为不需要额外的数据转换。

  • 缺点:

  • 处理复杂数据结构可能会更繁琐。

  • 需要手动处理类型安全和版本兼容性问题。

  • 在你的情况下,由于你只需要保存按键绑定,建议使用文件读写。使用JSON或XML等格式可以使配置文件易于阅读和修改。这样可以更快地存储和恢复数据,同时也能确保数据安全。

    如果你决定使用文件读写,可以考虑使用一些流行的C++库,如RapidJSON、JSON for Modern C++或TinyXML-2等。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2023-04-27
展开全部
这里有个概念的问题,对象写到文件里也是一种“串行化”,而你说的前者“用串行化来保存”是所有把对象保存到文件或者发到网络上的通用技术的统称,所以你应该说的某种特别的串行化方法,但是从你问的问题中是没法看出来是哪种
无论哪种串行化方法,只要你写的对,效率和安全性差不多,主要“慢”的地方是写文件,而不是串行化本身
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式