在设计用于记录二进制数据的文件格式时,您认为该格式应具有哪些属性?到目前为止,我得出了以下要点:
- 开头有一些“魔术字节”,以便能够识别文件(在我的具体情况下,这也应该有助于区分文件和“旧”文件)
- 开头有一个文件版本号,以便以后可以更改文件格式而不会破坏兼容性
- 指定所有数据项的字节顺序和大小;或者:包含一些空间来描述数据的字节顺序/大小(我倾向于前者)
- 是否可以为将来可能需要的其他每个文件属性保留一些空间?
还有什么可以使格式更加经得起 future 考验并最大限度地减少 future 的麻烦?
最佳答案
看看PNG spec 。这种格式背后有一些非常好的理由。
此外,决定什么对您 future 的格式很重要:紧凑性、兼容性、允许在其中嵌入其他格式(不同的压缩算法)。另一个有趣的例子是 Google's protocol buffers ,其中传输数据的大小才是王道。
至于字节顺序,我建议您选择一个选项并坚持使用,不允许不同的字节顺序。否则,读写库只会变得更加复杂和缓慢。
关于binary - 设计(二进制)文件格式时有哪些要点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/323604/