4

我正在尝试通过从 Java 移植代码来格式化 C# 中的字节数组。在 Java 中,使用方法“buf.putInt(value);”、buf.putShort、buf.putDouble(等等)。但是我不知道如何将其移植到 C#。我已经尝试过 MemoryStream 类,但是没有方法可以将特定类型放在字节数组的末尾。

问题:C# 中 Java 的“ByteBuffer.putType(value)”等价物是什么?谢谢!

4

3 回答 3

9

您可以使用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();
于 2009-08-11T16:45:13.213 回答
5

试听BinaryWriter课:

using (var binaryWriter = new BinaryWriter(...))
{
    binaryWriter.Write(323);
    binaryWriter.Write(3487d);
    binaryWriter.Write("Hello");
}
于 2009-08-11T16:44:11.000 回答
0

你会想要使用这个BitConverter类。主要区别在于这些方法返回一个字节数组,而不是更改现有数组。

(这是对提到的特定方法的替换;有关整个 ByteBuffer 类的替换,请参阅其他回复。)

于 2009-08-11T16:41:33.140 回答