File 如何创建文件格式?
我一直在读一些关于文件格式的书,我对它们很感兴趣。我想知道创建格式的过程是什么。例如,.jpeg、.gif或音频格式。您会使用哪种编程语言(如果您使用的是编程语言) 该网站警告我,这个问题可能会被关闭,但这只是我追求知识的一个风险。:) 创建格式的过程是什么。例如,.jpeg、.gif或音频格式 第一步。决定文件中将包含哪些数据 第二步。设计如何在文件中表示该数据 第三步。把它写下来,让别人能理解 就这样。文件格式只是一个想法。正确地说,这是一个“协议”。没别的了。File 如何创建文件格式?,file,programming-languages,creation,formats,File,Programming Languages,Creation,Formats,我一直在读一些关于文件格式的书,我对它们很感兴趣。我想知道创建格式的过程是什么。例如,.jpeg、.gif或音频格式。您会使用哪种编程语言(如果您使用的是编程语言) 该网站警告我,这个问题可能会被关闭,但这只是我追求知识的一个风险。:) 创建格式的过程是什么。例如,.jpeg、.gif或音频格式 第一步。决定文件中将包含哪些数据 第二步。设计如何在文件中表示该数据 第三步。把它写下来,让别人能理解 就这样。文件格式只是一个想法。正确地说,这是一个“协议”。没别的了。 每个人都同意将给定的信息以给
每个人都同意将给定的信息以给定的格式保存 您会使用哪种编程语言(如果您使用的是编程语言) 所有可以进行I/O的编程语言都可以有文件格式。有些人对可以处理的文件格式有限制。有些语言处理低级字节的能力不如其他语言 但“格式”不是“实现”
格式是一个概念。实现是一种实现。您不需要编程语言来编写文件格式规范,尽管文字处理器可能是一种方便的工具 基本上,您需要决定如何将文件信息存储为位序列。这可能微不足道,也可能非常困难。举个简单的例子,一个非常原始的位图图像格式可以从一个表示位图宽度的无符号32位整数开始,然后再从一个表示位图高度的整数开始。然后,您可以决定简单地按顺序写出像素的颜色,从左到右,从上到下(像素的第1行,像素的第2行,…),每像素使用24位,格式为红色8位,绿色8位,蓝色8位。例如,由交替的蓝色和红色像素组成的8×8位图将存储为
00000008000000080000FFFF00000000FFFF0000...
在一个不那么简单的例子中,它实际上取决于您希望保存的数据。通常,您会定义大量记录/结构,例如,并指定它们的顺序、嵌套方式,并且可能需要编写大量标记和查找表。我自己写过很多文件格式,最近一次是用于保存结构的ASD(AlgoSim数据)文件格式。这些文件由许多记录(可能是嵌套的)、查找表、魔术字(表示结构开始、结构结束等)和自定义格式的字符串组成。通常简化文件格式的一个典型情况是,记录包含有关其大小的数据,以及记录后面的自定义数据部分的大小(如果记录是某种头,则在自定义格式的数据之前,例如像素颜色或声音样本)
如果您以前没有使用过文件格式,我建议您学习一种非常简单的格式,例如Windows 3位图格式,并编写自己的BMP编码器/解码器,即创建和读取BMP文件(从头开始)并显示读取的BMP文件的程序。现在您可以了解基本思想了。从根本上说,文件的存在只是为了存储将来需要重新加载的信息,这些信息可以由同一个程序加载,也可以由不同的程序加载。设计了一种非常好的文件格式,以便:
你肯定对调查和调查很感兴趣。这些工具为设计前后兼容的文件格式提供了一种现代的、有原则的方法。您是指二进制格式,还是任何一般格式(包括纯文本)?现有答案是正确的,但是如果您想创建概念证明或库来实现文件格式的解析器,那么我建议您使用C/C++。大多数语言都可以使用,但这些都是常用的。很好的解释。我喜欢“协议”这个词,非常合适。我不会那么做。但OP的里程可能会有所不同。