我有java
代码
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write(tokenBytes);
baos.write(signedData);
byte[] finalout = baos.toByteArray();
其中tokenBytes和signedData是字节数组。在c#
我写的是
using (MemoryStream stream = new MemoryStream())
{
using (BinaryWriter writer = new BinaryWriter(stream))
{
writer.Write(tokenBytes);
writer.Write(signature);
}
finalBytesToSend = stream.ToArray();
}
其中tokenBytes,signature和finaleBytesToSend是字节数组。
这是对的吗?还有其他办法吗?
答案 0 :(得分:1)
据推测,我假设您正在编写Java-C#序列化方案。我认为有三件事你可能要小心:
在我看来,如果你在Java和C#之间传输数据,你最好在Java端使用ByteBuffer,在C#端使用MemoryStream / BinaryReader / BinaryWrite。在C#端正确设置UTF-16 Big Endian,并为int / long / double primitives之类的东西编写自己的反序列化器。这使它工作。