把两个短路放到一个字节数组

时间:2013-01-21 19:40:47

标签: c# java

我需要一个包含4个字节的字节数组,其中包含2个短路。我现在有这个:

MemoryStream str = new MemoryStream();
using (BinaryWriter writer = new BinaryWriter(stream)) {
     writer.Write((short) printscreen.Width);
     writer.Write((short) printscreen.Height);
}
byte[] bytes = str.ToArray();

在java中我使用了bytebuffer。但是我应该将什么用于c#?

我通过套接字将这些字节发送到java服务器。 Java代码:

byte[] data = new byte[in.available()];
in.read(data);
ByteBuffer buffer = ByteBuffer.wrap(data);
System.out.println(buffer.getShort());

1 个答案:

答案 0 :(得分:3)

来自Java ByteBuffer Class的文档:

  

根据缓冲区的当前字节顺序将原始值转换为(或来自)字节序列,可以通过顺序方法检索和修改。特定的字节顺序由ByteOrder类的实例表示。 字节缓冲区的初始顺序始终为BIG_ENDIAN。

来自.NET BinaryWriter.Write(short) Method的文档:

  

BinaryWriter以小端格式存储此数据类型

由于无法更改BinaryWriter,因此需要更改ByteBuffer使用的字节顺序:

buffer.order(ByteOrder.LITTLE_ENDIAN);