C# 上位机读取二进制文件所有字节(需要考虑原来文件数据的类型吗),转换成uint16类型数据
时间: 2024-12-30 14:37:00 浏览: 24
在C#中,上位机通常是指通过串口或其他通信协议从外部设备(如PLC、工业控制器等)读取数据。如果你想要读取一个二进制文件的所有字节,并将它们转换为uint16
类型的数据,你需要按照以下步骤操作:
打开文件: 使用
FileStream
或BinaryReader
类打开二进制文件,例如:using (FileStream file = File.OpenRead("binaryFile.bin"); BinaryReader reader = new BinaryReader(file);
读取字节: 通过循环逐块读取文件内容,直到文件结束:
byte[] bytes = new byte[file.Length]; reader.Read(bytes, 0, (int)file.Length);
转换为
ushort
数组: 创建一个ushort
数组来存储每个字节对(因为uint16
占两个字节)。你可以通过按位操作(如左移和位与运算)或者直接使用.NET内置的转换函数(如BitConverter.ToUInt16()):List<ushort> ushortArray = new List<ushort>(); for (int i = 0; i < bytes.Length; i += sizeof(ushort)) { if (i + sizeof(ushort) <= bytes.Length) { ushort uint16Value = BitConverter.ToUInt16(bytes, i); ushortArray.Add(uint16Value); } }
处理字节数不足的情况: 如果文件长度不是
uint16
的整数倍,最后可能不够两个字节来构成完整的uint16
。在这种情况下,可以忽略剩余的字节,或者用默认值填充。关闭资源: 最后别忘了关闭
BinaryReader
:reader.Close();
相关推荐


















