Java - 将 int 转换为 4 个字节的字节数组?

2022-08-31 12:12:20

可能的重复:
将整数转换为字节数组(Java)

我需要存储缓冲区的长度,在一个4个字节大的字节数组中。

伪代码:

private byte[] convertLengthToByte(byte[] myBuffer)
{
    int length = myBuffer.length;

    byte[] byteLength = new byte[4];

    //here is where I need to convert the int length to a byte array
    byteLength = length.toByteArray;

    return byteLength;
}

实现这一目标的最佳方式是什么?请记住,我稍后必须将该字节数组转换回整数。


答案 1

您可以使用如下方法转换为字节:yourIntByteBuffer

return ByteBuffer.allocate(4).putInt(yourInt).array();

请注意,在执行此操作时,您可能必须考虑字节顺序


答案 2
public static  byte[] my_int_to_bb_le(int myInteger){
    return ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN).putInt(myInteger).array();
}

public static int my_bb_to_int_le(byte [] byteBarray){
    return ByteBuffer.wrap(byteBarray).order(ByteOrder.LITTLE_ENDIAN).getInt();
}

public static  byte[] my_int_to_bb_be(int myInteger){
    return ByteBuffer.allocate(4).order(ByteOrder.BIG_ENDIAN).putInt(myInteger).array();
}

public static int my_bb_to_int_be(byte [] byteBarray){
    return ByteBuffer.wrap(byteBarray).order(ByteOrder.BIG_ENDIAN).getInt();
}