Моя попытка:
public static byte[] toBytes(final int intVal, final int... intArray) {
if (intArray == null || (intArray.length == 0)) {
return ByteBuffer.allocate(4).putInt(intVal).array();
} else {
final ByteBuffer bb = ByteBuffer.allocate(4 + (intArray.length * 4)).putInt(intVal);
for (final int val : intArray) {
bb.putInt(val);
}
return bb.array();
}
}
С его помощью вы можете сделать это:
byte[] fourBytes = toBytes(0x01020304);
byte[] eightBytes = toBytes(0x01020304, 0x05060708);
Полный класс здесь: https://gist.github.com/superbob/6548493 , он поддерживает инициализацию от коротких или длинных
byte[] eightBytesAgain = toBytes(0x0102030405060708L);