在C#中相当于Java的“ByteBuffer.putType()”

时间:2009-08-11 16:39:34

标签: c# java memorystream bytebuffer

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

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

3 个答案:

答案 0 :(得分:8)

您可以使用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();

答案 1 :(得分:5)

尝试BinaryWriter课程:

using (var binaryWriter = new BinaryWriter(...))
{
    binaryWriter.Write(323);
    binaryWriter.Write(3487d);
    binaryWriter.Write("Hello");
}

答案 2 :(得分:0)

您将希望使用BitConverter课程。主要区别在于这些方法返回一个字节数组,而不是改变现有数组。

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