我正在使用 google 协议缓冲区,我需要在消息前面加上 16 位 int 的大小。我没有找到写 16 位 int 的协议缓冲区方法
我是一个 c++ 人,对 java 知之甚少。
到目前为止,我正在使用:
// protomessage is a protocol buffer message
// assuming protomessage.toByteArray().length < short.MAX_value
ByteArrayOutputStream rawOutput = new ByteArrayOutputStream();
CodedOutputStream output = CodedOutputStream.newInstance(rawOutput);
ByteBuffer b = ByteBuffer.allocate(2);
b.order(ByteOrder.LITTLE_ENDIAN);
b.putShort((short) (protomessage.toByteArray().length));
output.writeRawBytes(b.array())
那是正确的方法吗?(老实说感觉不对)
谢谢