代码之家  ›  专栏  ›  技术社区  ›  Gezim Tarang

我的应用程序应该使用什么文件格式?

  •  -1
  • Gezim Tarang  · 技术社区  · 16 年前

    我正在编写一个管理待办事项列表的应用程序。与“传统”的todo-list应用程序不同,我希望用户将这些todo-list文件放在文件系统上,并使其可见,而不是被应用程序神奇地隐藏。我希望用户能够通过电子邮件互相发送待办事项列表等。此外,我稍后还打算创建一个具有数据库后端的Web应用程序,它允许用户在待办事项列表上进行协作。

    我的问题是,我应该使用什么文件格式来存储我的应用程序的本地文件? 当我开始思考这个的时候,我首先想到的是 XML 因为它(有点)可读,但后来我想 sqlite 然后发现 YAML 现在我很困惑。我们将感谢您的指导。

    更新:

    我应该提到的是,我将很可能在C++、Objor C或(不太可能)Python中编码这一点。所以无论提出什么格式,都需要有合适的库。

    更新2:

    我还担心能够将所有这些不同的格式与我的应用程序相关联,因此当打开应用程序格式的文件时,我的应用程序将打开,而不是像文本编辑器一样。

    5 回复  |  直到 16 年前
        1
  •  2
  •   Javier    16 年前

    我非常喜欢将sqlite数据库用作文档文件(为您提供了结构、良好的分析工具、事务等);但是如果您希望用户简单地获取文档并通过电子邮件发送,那么基于文本的健壮格式会更好。

    XML是一种可能性,但它太冗长和丑陋了。yaml的可读性要高得多,它看起来像.ini文件,但具有更多的结构。JSON是一个中间层,不像YAML那样可读,也不像XML那样难看。

    这三种格式都可以采用任意结构,生成基于文本的表示,并从中重建结构,因此它们在功能上是等效的。

    XML的主要优点似乎是它很容易被意外损坏,因为它不再是一个格式良好的文档。但不难添加一些校验和或类似的字段到任何格式。

        2
  •  2
  •   Dirk Vollmar    16 年前

    另一种选择是使用打包文件格式,特别是当您希望能够将其他内容嵌入到文档(如图像)中时。其优点是,用户只需发送一个包含所有内容的文件。另一个优点是大型XML结构可以很好地压缩。

    这种格式的例子有ODF(OpenDocument格式),它使用一个包含清单文件的zip包,或者OfficeOpenXML,它使用一个opc(开放包装约定)容器。这两种格式都由ISO标准化。

        3
  •  0
  •   Maxem    16 年前

    在应用程序中使用sqlite,并添加一个导出/导入功能,以XML格式导出/导入这些列表呢?

        4
  •  0
  •   Davy8    16 年前

    如果您希望用户能够将文件编辑为文本,那么任何文本格式都应该是好的,这比其他任何格式都更重要。

    如果您不希望用户能够将其编辑为文本(不太可能意外地弄乱数据),而只希望用户通过您的应用程序编辑文件,那么我将使用sqlite。

    关于关联文件格式,您不关联格式,您关联文件扩展名,因此如果您不希望它们与其他应用程序关联,请组成您自己的文件扩展名,并向其注册应用程序。

        5
  •  -1
  •   JasonMichael    16 年前

    我会说XML,但即使我建议这样做,我还是觉得既然你问了这个问题,我建议你读一本关于这个主题的编程书,然后开始阅读……这是学校项目吗?