应该如何编写“项目”文件?

问题描述

对于流行的软件包,例如Microsoft Word或Photoshop,我们通常可以选择将进度保存为“项目”文件,以后可以打开该文件来进一步编辑作品。该文件通常包含所有选项和用户所取得的进度(即您在Word中键入的文章)。

所以我的问题是,如果我正在做一个类似的应用程序,需要创建一个类似的“项目”文件,那该怎么办?我的应用程序是科学应用程序,这意味着它需要很多(多维)数组。我知道会有很多选择可以做到这一点,但是我想知道事实上的方法

以下是我列出的一些选项:

    XML:人类可读。大小太大,无法处理数组。
  1. JSON:更流行/现代。擅长使用数组。
  2. 协议缓冲区:由Google创建。可能更快。
  3. 数据库:可能不是一个好用例,因为“项目”文件很可能是“临时”文件。此外,使用数组也不是很简单。
  4. 创建自己的二进制格式:对于像我这样没有经验的程序员来说,这可能是最困难的解决方案。
  5. ???

我想从你们那里得到一些建议。谢谢:)。

解决方法

(好问题。:)只有一些想法)我希望主项目文件使用文本格式。您可以进行比较并轻松打开并阅读和修改它。大型ascii或二进制数据可以作为序列化数据存储在外部文件中,也可以存储在SQLite之类的数据库中,可以从中轻松地通过应用程序进行访问和处理。主项目具有到外部数据存储的链接。我对主项目文件的建议是一种简单的XML格式,可以轻松转换为JSON格式。 key value对(dict)的列表一开始就很好。 value可以是基本数据类型,也可以是arraydict。复杂的XML树不是很好。 key名称还可以帮助描述和构建数据。所以我更喜欢key="rect.4711.pos.x" value="500"而不是<rect id="4711"><pos><x>500</x>...</pos>...。重要的方面是项目数据是可移植的并且是独立的,并且即使项目是文件系统上的目录,用户也可以将项目视为一个单元,因此,支持某种压缩格式的项目数据是很好的