将二进制数据直接写入结构体的C#/ .net等价物是BinaryReader
和BinaryWriter
。
BinaryReader
和BinaryWriter
是C#中用于处理二进制数据的类,它们可以将二进制数据直接写入结构体。BinaryReader
用于读取二进制数据,而BinaryWriter
用于写入二进制数据。
以下是一个简单的示例,演示如何使用BinaryReader
和BinaryWriter
将二进制数据直接写入结构体:
using System;
using System.IO;
public struct MyStruct
{
public int IntValue;
public float FloatValue;
public string StringValue;
}
public class Program
{
public static void Main()
{
MyStruct myStruct;
myStruct.IntValue = 123;
myStruct.FloatValue = 456.789f;
myStruct.StringValue = "Hello, World!";
using (MemoryStream memoryStream = new MemoryStream())
{
using (BinaryWriter binaryWriter = new BinaryWriter(memoryStream))
{
binaryWriter.Write(myStruct.IntValue);
binaryWriter.Write(myStruct.FloatValue);
binaryWriter.Write(myStruct.StringValue);
}
memoryStream.Position = 0;
using (BinaryReader binaryReader = new BinaryReader(memoryStream))
{
myStruct.IntValue = binaryReader.ReadInt32();
myStruct.FloatValue = binaryReader.ReadSingle();
myStruct.StringValue = binaryReader.ReadString();
}
}
Console.WriteLine($"IntValue: {myStruct.IntValue}");
Console.WriteLine($"FloatValue: {myStruct.FloatValue}");
Console.WriteLine($"StringValue: {myStruct.StringValue}");
}
}
在这个示例中,我们首先创建了一个名为MyStruct
的结构体,并在其中定义了三个成员变量:IntValue
、FloatValue
和StringValue
。然后,我们使用BinaryWriter
将这些成员变量的值写入到一个内存流中。接下来,我们使用BinaryReader
从内存流中读取这些值,并将它们赋给结构体的成员变量。最后,我们将结构体的成员变量打印到控制台上。
这种方法可以让我们方便地将二进制数据直接写入结构体,而不需要手动处理每个成员变量的读写操作。
领取专属 10元无门槛券
手把手带您无忧上云