3

我在谷歌上搜索了固定格式文件(FFF)并得到了这些结果:

我不确定哪个是固定格式文件。第二个是 FFF 还是其他的?

FFF 解决了哪些问题,XML 如何比 FFF 更好地解决这些问题?与 FFF 相比,XML 格式有什么缺点吗?

提前致谢。

4

2 回答 2

5

FFF 相对于 XML 的最大优势是基于索引的随机访问的内置功能。反面很明显,与 FFF 相比,XML 的最大缺点是必须对其进行解析的线性方式。

假设您有一个保存人员记录的数据文件。记录可以包含 ID、姓名、地址和电话号码。

固定格式

ID          : 8 chars
Surname     : 36 chars
Firstname   : 36 chars
Address     : 100 chars
Phone       : 20 chars
-----------------------
Total Space: 200 chars

XML 格式(人为的,可能是多种格式)

<Person id="...">
   <Surname>...</>
   <Firstname>...</>
   <Address>...</>
   <Phone>...</>
</Person>

Total Space : Variant

现在,假设这有 1000 条“记录”,让我们看看用两种形式达到第 600 条记录有多困难。

固定格式

Offset = (600-1)*200 = 119800 bytes
fseek() + fread() = done

XML 格式

Um..... 

XML 的最大优势是可扩展性X并非无中生有)。XML 制作了一个很棒的数据片段、RSS 提要、配置文件等。它很容易发出,不需要特殊的库,只有基本的知识,并且在存储空间上是合理的(只要你不<LoveThoseSuperDuperLongElementNames>发疯)。它很容易理解,有大量标准支持,几乎每个人的工具包中都有 XML 解析器。通用的“理解”只是一个模式文档(老派的 DTD),验证等也是如此。

但 XML 最大的缺点一直是现在,而且在量子计算飞跃长路之前,一直都是:速度。XML 是一种糟糕的吞吐量要求存储系统。

于 2012-11-24T09:40:49.563 回答
3

由于您正在与 XML 进行比较,我假设您的意思是一个固定宽度的文本文件(您的示例中的后者)。说哪个“更好”并不容易,这在很大程度上取决于您的用例。

XML的一些优点;

  • 灵活(即字段可以更长/更短,甚至可以在不破坏现有代码的情况下添加)
  • 有许多实现可供选择。
  • 您可以或多或少地完全使用机器可读的模式来定义它。
    (这意味着如果您只有一个定义文件的模式,计算机可以在某种程度上生成代码来读取和验证文件)

固定宽度文件的一些优点;

  • 简单得多,读取和写入文件都或多或少是微不足道的。
  • 可能占用更少的空间,XML 相当“健谈”。
于 2012-11-24T09:11:10.680 回答