gpt4 book ai didi

java - 选择正确的文件格式

转载 作者:行者123 更新时间:2023-11-30 06:29:08 25 4
gpt4 key购买 nike

我正在开发一个应用程序,它应该可以保存/加载数据。大多数数据存储在类的实例中。实例中的数据包括:

  • double[][] 数组
  • 一些 String, int, bool 和一些枚举数

我有多个这样的实例 + 一些我想存储在单个文件中的全局数据。

到目前为止,我将所有这些都保存为二进制数据,使用

DataOutputStream out = new DataOutputStream(FileOutputStream(file));
out.writeInt()/writeBoolean()/writeUTF()/etc

这个很好用,问题是不太灵活。如果我向我的容器类添加/删除一些变量,则没有简单的方法仍然可以兼容旧格式。我开始使用在文件开头添加的版本号。但这会导致每个格式版本都有一个很大的 loadData/closeData 方法。

基于文本的文件是不可能的,因为它们为我的双数组占用了太多空间。

你知道解决这个问题的好方法吗? IE。定义一种不会产生大量代码的向后兼容格式?任何建议表示赞赏。

我正在考虑的一个想法是用一个标识该变量的整数来标记每个变量。所以格式将是 [identifier1][variable1(String)][identifier2][variable2(double[][])]...

我也想过序列化,但我没有任何经验,也不能确定这是否是正确的做法。

如果您需要有关数据或示例的更多信息,请发表评论。

最佳答案

http://code.google.com/p/protobuf/是 Google 出色的跨平台(和跨语言)存储数据的方式,已经内置向后兼容性,可以尝试一下。

特别是这部分文档与您的案例有关:

New fields could be easily introduced, and intermediate servers that didn't need to inspect the data could simply parse it and pass through the data without needing to know about all the fields.

关于java - 选择正确的文件格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11797715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com