如何用小端格式的SeekableByteChannel读写整数?

时间:2012-04-04 13:54:35

标签: java endianness nio2

我需要以小端格式读取和写入带有SeekableByteChannel的有符号和无符号整数。这可能看起来很愚蠢,但我在JDK中找不到一些东西。我是否错过了某些内容,或者我希望自己能够推出这个内容?这不是问题,但我不想今天重新发明轮子。 : - )

1 个答案:

答案 0 :(得分:2)

听起来像是ByteBuffer的作品。

有点像

public static void main(String[] args) {
    byte[] payload = toArray(-1991249);
    int number = fromArray(payload);
    System.out.println(number);
}

public static  int fromArray(byte[] payload){
    ByteBuffer buffer = ByteBuffer.wrap(payload);
    buffer.order(ByteOrder.LITTLE_ENDIAN);
    return buffer.getInt();
}

public static byte[] toArray(int value){
    ByteBuffer buffer = ByteBuffer.allocate(4);
    buffer.order(ByteOrder.LITTLE_ENDIAN);
    buffer.putInt(value);
    return buffer.array();
}