gpt4 book ai didi

c# - C# 中的 BinaryFormatter 是一种读取文件的好方法吗?

转载 作者:太空宇宙 更新时间:2023-11-03 11:47:58 26 4
gpt4 key购买 nike

我想读取一个在我的程序之外创建的二进制文件。在 C# 中读取二进制文件的一种明显方法是定义表示文件的类,然后使用 BinaryReader 并通过 Read* 方法从文件中读取并将返回值分配给类属性。

我不喜欢这种方法的地方是我必须手动编写读取文件的代码,尽管定义的结构表示文件的存储方式。我也必须在阅读时保持顺序正确。

环顾四周后,我发现了 BinaryFormatter,它可以自动序列化和反序列化二进制格式的对象。一个很大的优势是我可以在不创建额外代码的情况下读取和写入文件。但是我想知道这种方法是否适用于从其他程序创建的文件,而不仅仅是序列化的 .NET 对象。以 BMP 这样的图形格式文件为例。使用 BinaryFormatter 读取文件是个好主意,还是手动通过 BinaryReader 和 BinaryWriter 写入文件更好?或者还有其他更适合的方法吗?我不是在寻找具体的例子,而只是寻求建议,什么是实现它的最佳方式。

最佳答案

您必须非常非常幸运才能找到恰好与 BinaryFormatter 输出的格式完美映射的外部文件格式。 BinaryFormatter 显然添加了有关您正在序列化的类型/事物以及数据本身的信息,而“正常”二进制文件格式通常是“这些字节是这个,然后这些字节是这个”。

当我过去这样做时(最近想到阅读 SWF header ),我总是只使用文件流并手动处理/映射它。

关于c# - C# 中的 BinaryFormatter 是一种读取文件的好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2919549/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com