我正在使用第三方ssh库,我需要将一些选项指定为字节数组。即终端模式(http://www.ietf.org/rfc/rfc4254.txt)。
我的问题是我需要创建一个byte
数组,该数组是uint
数组{128, 36000, 129, 36000}
的'等效',我不太清楚如何实现这一目标。相当于我的意思 - 我不在乎它在java中代表的是什么数字,我确实关心在套接字上发送正确的字节。
任何提示?提前谢谢。
答案 0 :(得分:3)
如果我理解了您的问题,那么我相信您可以使用ByteArrayOutputStream
包裹的DataOutputStream
来做到这一点,
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
int[] ints = new int[] { 128, 36000, 129, 36000 };
try {
for (int i = 0; i < ints.length; i += 2) {
dos.writeByte(ints[i]);
dos.writeInt(ints[1 + i]);
}
dos.close();
} catch (IOException e) {
e.printStackTrace();
}
byte[] bytes = baos.toByteArray();
或者,直接使用客户端OutputStream
。