安卓如何在Java中将byte[]转换为int
我有一个基于socket的服务器-客户端通信通道。我将3个整数值压缩到字节[],并将其写入socket OutputStream,但我知道如何将其转换回来
代码类型:
ByteBuffer b = ByteBuffer.allocate(12);
b.putInt(BTActions.READY_FOR_GAME);
b.putInt(i);
b.putInt(l);
try
{
mAcceptThread.getWriteSocket().write(b.array());
}
catch (IOException e)
{
e.printStackTrace();
}
# 1 楼答案
如果使用
ByteBuffer
,则此缓冲区具有字节顺序;默认情况下,这个顺序是big-endian分配一个12字节的缓冲区,并向其写入3个整数;这是12个字节,到目前为止还不错
假设您没有定义ByteBuffer的顺序,默认值是big-endian。默认情况下,JVM对所有基元类型都使用big-endian
因此,在将3个整数写入缓冲区后,可以将其读回: