binary - 设计(二进制)文件格式时有哪些要点?

标签 binary file-format

在设计用于记录二进制数据的文件格式时,您认为该格式应具有哪些属性?到目前为止,我得出了以下要点:

  • 开头有一些“魔术字节”,以便能够识别文件(在我的具体情况下,这也应该有助于区分文件和“旧”文件)
  • 开头有一个文件版本号,以便以后可以更改文件格式而不会破坏兼容性
  • 指定所有数据项的字节顺序和大小;或者:包含一些空间来描述数据的字节顺序/大小(我倾向于前者)
  • 是否可以为将来可能需要的其他每个文件属性保留一些空间?

还有什么可以使格式更加经得起 future 考验并最大限度地减少 future 的麻烦?

最佳答案

看看PNG spec 。这种格式背后有一些非常好的理由。

此外,决定什么对您 future 的格式很重要:紧凑性、兼容性、允许在其中嵌入其他格式(不同的压缩算法)。另一个有趣的例子是 Google's protocol buffers ,其中传输数据的大小才是王道。

至于字节顺序,我建议您选择一个选项并坚持使用,不允许不同的字节顺序。否则,读写库只会变得更加复杂和缓慢。

关于binary - 设计(二进制)文件格式时有哪些要点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/323604/

相关文章:

c# - 如何二进制序列化程序自定义类

python - 在python中将字符串转换为二进制数

swift - 我们可以将SceenKit场景保存为Autocad文件格式(.DXW或.DFX)

csv - CSV 文件可以有注释吗?

mysql - 将十六进制值插入 MySql

python - python 中的定点二进制解包

C# 在不知道文件格式的情况下读取二进制文本文件

bmp - BMP 文件的方向 : upright or upside-down?

python - 转换遗留数据的文件格式

delphi - 加载 Jpg/Gif/Bitmap 并转换为 Bitmap