您需要了解的有关文件格式及其属性的所有信息

文件是计算体验的基本部分之一。但是,什么是“文件"?它是您桌面上的图标,列表中的一个条目(可将您的预算以电子表格形式打开)以及您可以为自己的最新自拍照命名的名称。归根结底,“文件"是以某种应用程序可以理解的模式排列的位(零和1)的集合。

开发人员可能会将这些模式保密,这可能会使用户保持尽管有其他替代方案。其他开发人员实际上可能会鼓励采用其格式。在某些情况下,您可能可以轻松打开和解释格式,或者可能无法在其本机应用程序之外使用。

基于文本的vs.二进制文件格式

不同文件类型的第一个重要方面是二进制文件还是文本文件,基于。让我们依次看一看。

文本文件是最基本的文件格式。几乎任何装有处理器的系统都可以读取它。这种格式是遵循ASCII标准的一系列位(一和零)(我们暂时将忽略Unicode),这意味着计算机可以将以下每个字节(8位)解释为一个字符:

  • AZ(包括大写和小写
  • 0-9
  • 空格字符
  • 符号的选择(例如标点符号)
  • 控制字符(例如“ DEL")
  • 由于数据存储为文本,因此您可以通过在文本编辑器中打开文件来查看文件的内容,甚至是Windows Notepad之类的简单代码)。由于几乎所有计算平台都附带基本的文本编辑器,因此您可以将一些(文本)信息放入这些文件之一,并确信您将始终能够访问它。其他应用程序不需要进一步了解信息即可至少正确地读取数据。

    但是,当您需要在封面上表示文本字体或自动填充日期之类的内容时,事情会变得更加复杂页。在这种情况下,ASCII字符会构成基于文本的格式,例如Markdown或XML。尽管这赋予了纯文本如透明性的好处,但这些文件通常需要更多空间来存储诸如标签之类的元素。请考虑以下纯文本的一句话文件,然后考虑使用XML的开放文档格式的“平面ODT"(FODT)格式。下图显示纯文本版本为53字节,而ODT版本为 25,000字节

    相反,二进制格式是由应用程序将其构造的文件一点点。您可以尝试使用文本编辑器打开这些文件,但可能不知道如何解释它们。下面显示了尝试使用文本编辑器打开Microsoft Excel文件的结果。

    应用程序需要以特定方式处理二进制文件中的数据。打开XLS文件时,应用程序必须将文件的前16个字节视为“文件开始"(BOF)标记。在该标记内,第五项是一位,指示文件是否最后一次在Windows平台上编辑(“ fWin")。它紧随其他四个项目(每两个字节)之后,这意味着“ fWin"项目是Excel文件中的第65位。

    如我们所见,如果您尝试使用不具有以下功能的应用程序打开它:如果将第65位作为“ fWin"标志处理,则该应用程序将无法正确打开它。它可能会在屏幕上显示许多乱码(如上所示),使用错误消息(也由于Linux而在上图所示)进行适当处理,或者崩溃。无论如何,它都不知道如何正确读取数据,因此也无法正确显示。但是应用程序一旦编程,就可以根据需要处理任意数量的文件格式。

    打开与专有格式

    接下来要考虑的是文件格式是否为打开状态(即,为了方便起见)由他人使用)或专有。请注意,“专有"与封闭不一样,至少在所有情况下都不一样。尽管上面的“文本与二进制"辩论是一个技术性辩论,但“开放与专有"辩论更多地与文件格式的许可条款有关。以下各节将对此进行更多介绍。

    开放格式是指许可证允许用户将其用于自己的应用程序的格式。某种形式的标准机构还应由贡献者社区监督其正在进行的开发,以使格式真正成为“开放式"。开放式格式也没有许可费用和限制-任何人都可以出于任何目的使用它们。也许最著名的开放格式是开放文档格式(ODF),由OASIS于2005年首次发布。其目的是为Microsoft在生产力市场上的锁定提供一种替代方案。

    使用开放格式,您无需担心您的信息被锁定在特定文件中。考虑以下内容,它显示了我们的Flat ODT格式文件。尽管周围有很多无关紧要的信息,但是您可以在此处看到每天的实际数据。

    Another benefit of open formats is their thorough documentation. It’s one thing for a file to be easily readable. A programmer will still (through trial and error) need to figure out what exactly its each and every feature does. But in the case of ODF, the version 1.2 specification gives a programmer everything they need to know in order to implement support for it efficiently.

    最后,专有格式受其开发人员保护。可能是因为它们包含商业机密,是出于(感知)安全的目的,或者仅仅是因为开发人员不想共享他的工作。无论出于何种原因,这些格式都是根据最终用户许可协议(EULA)或其他禁止用户尝试反向工程或以其他方式“破解"文件格式的条款专有的。

    《数字千年版权法案》(DCMA)曾一度只是“禁止"更改了事情。现在,开发人员拥有合法的支持,可以追究那些对工程进行反向工程的人。在投资使用专有格式的应用程序之前,您应该考虑未来。您将来是否需要将该信息迁移到其他地方?如果是这样,它将有多痛苦?公司会在一年或五年后出现吗?如果它还意味着由于专有格式而被锁定在该开发人员中,则应考虑该应用程序的功能是否值得。

    文件格式示例

    如果您查看上述内容,几个组合会跳出来。确实,基于文本的文件格式会使自己处于打开状态。同样,如果格式的目标是专有,那么通过将其设置为二进制格式来保持这种格式会更容易。

    GIMP的XCF图像格式是一种开放格式,也是二进制格式。

    该项目详细说明了格式如何将构成GIMP文件的图形,文本和图层保存为原始位和字节(如下所示)。开发人员可以使用此代码编写自己的实现,以便诸如ImageMagick工具包之类的外部应用程序可以导入它们。

    相反,最新的Microsoft Visio格式(VSDX)是基于XML的(因此也是基于文本的)格式。它发布了这些文件组成的详细参考。但是,参考文档指出Microsoft“拥有可能涵盖您的实现的专利" .VSDX支持。此外,美国国会图书馆指出,使用VSDX规范“不保证所有相关专利的免版税使用许可"。这是您可以掷骰子并包括此支持的另一种说法。但是Microsoft可能会或不希望您以后再付款,这取决于它与Visio竞争的紧密程度。

    如果您认为这些比较复杂,那么非固定的ODT格式怎么样。这是一个ZIP格式的文件(二进制文件,并且是打开的,除非您也使用其加密),其中包含文档的文本( content.xml ,基于文本的打开格式)和图形(例如PNG,二进制

    文件格式到底有多重要?

    这是一个很难回答的问题。一方面,某些操作系统(如iOS)试图使用户完全不处理文件。您拥有创建用于打开文件的应用程序,谁在乎文件的结构或扩展名是什么?然而,许多组织(尤其是政府)一直在努力确保公共数据采用开放格式。

    如果您是软件理想主义者(并不是说这有什么问题),那么评估新应用程序,确保它们处于开放(最好是基于文本的格式)格式。如果您只是想开始工作,那么专有格式可能对您来说不是问题。

    您如何看待?您是否要求您的信息以可转换和验证的基于文本的开放格式保存?还是开发人员使用的任何格式(专有或非专有)足以满足您的需求?在评论中让我们知道以下内容!

    标签: