Использование ByteBuffer
.У него есть метод order(ByteOrder bo)
:
Изменяет порядок байтов этого буфера.
Параметры:
bo
- Theновый порядок байтов, либо BIG_ENDIAN
или LITTLE_ENDIAN
Обратите внимание, что Javadoc ByteBuffer
говорит:
Первоначальный порядок байтового буфера всегда BIG_ENDIAN
.
Пример
int value = 123456789;
byte[] bigEndian = ByteBuffer.allocate(Integer.BYTES)
.order(ByteOrder.BIG_ENDIAN)
.putInt(value)
.array();
byte[] littleEndian = ByteBuffer.allocate(Integer.BYTES)
.order(ByteOrder.LITTLE_ENDIAN)
.putInt(value)
.array();
System.out.printf("value = 0x%08x = %d%n", value, value);
System.out.println(Arrays.toString(bigEndian));
System.out.println(Arrays.toString(littleEndian));
Вывод
value = 0x075bcd15 = 123456789
[7, 91, -51, 21]
[21, -51, 91, 7]