BinaryReader 是 C# 中的一个类,用于从二进制流中读取基本数据类型和字符串。它提供了一种方便的方式来处理二进制数据,特别是当数据是从其他程序或平台生成的时。
Python二进制文件 是指使用 Python 的 struct
模块或其他方式生成的二进制文件,这些文件通常包含特定格式的数据,如整数、浮点数、字符串等。
类型:
应用场景:
假设我们有一个 Python 脚本生成的二进制文件 data.bin
,其中包含一个整数和一个浮点数:
import struct
with open('data.bin', 'wb') as f:
f.write(struct.pack('if', 12345, 67.89))
在 C# 中使用 BinaryReader 读取这个文件:
using System;
using System.IO;
class Program
{
static void Main()
{
using (FileStream fs = new FileStream("data.bin", FileMode.Open))
using (BinaryReader br = new BinaryReader(fs))
{
int intValue = br.ReadInt32();
float floatValue = br.ReadSingle();
Console.WriteLine($"Integer: {intValue}");
Console.WriteLine($"Float: {floatValue}");
}
}
}
问题:读取的二进制数据不正确或出现异常。
原因:
解决方法:
struct.pack
时指定字节顺序(如 >
表示大端序),在 C# 中使用 BitConverter
进行转换。struct.pack
时指定字节顺序(如 >
表示大端序),在 C# 中使用 BitConverter
进行转换。struct.pack
时指定字节顺序(如 >
表示大端序),在 C# 中使用 BitConverter
进行转换。通过以上方法,可以有效解决在使用 BinaryReader 读取 Python 生成的二进制文件时遇到的常见问题。
领取专属 10元无门槛券
手把手带您无忧上云