我正在尝试通过从 Java 移植代码来格式化 C# 中的字节数组。在 Java 中,使用方法“buf.putInt(value);”、buf.putShort、buf.putDouble(等等)。但是我不知道如何将其移植到 C#。我已经尝试过 MemoryStream 类,但是没有方法可以将特定类型放在字节数组的末尾。
问题:C# 中 Java 的“ByteBuffer.putType(value)”等价物是什么?谢谢!
我正在尝试通过从 Java 移植代码来格式化 C# 中的字节数组。在 Java 中,使用方法“buf.putInt(value);”、buf.putShort、buf.putDouble(等等)。但是我不知道如何将其移植到 C#。我已经尝试过 MemoryStream 类,但是没有方法可以将特定类型放在字节数组的末尾。
问题:C# 中 Java 的“ByteBuffer.putType(value)”等价物是什么?谢谢!
您可以使用BinaryWriter和 MemoryStream:
MemoryStream stream = new MemoryStream();
using (BinaryWriter writer = new BinaryWriter(stream))
{
writer.Write(myByte);
writer.Write(myInt32);
writer.Write("Hello");
}
byte[] bytes = stream.ToArray();
试听BinaryWriter
课:
using (var binaryWriter = new BinaryWriter(...))
{
binaryWriter.Write(323);
binaryWriter.Write(3487d);
binaryWriter.Write("Hello");
}
你会想要使用这个BitConverter
类。主要区别在于这些方法返回一个字节数组,而不是更改现有数组。
(这是对提到的特定方法的替换;有关整个 ByteBuffer 类的替换,请参阅其他回复。)