Tôi thử
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();
}
}
Với nó, bạn có thể làm điều này:
byte[] fourBytes = toBytes(0x01020304);
byte[] eightBytes = toBytes(0x01020304, 0x05060708);
Lớp đầy đủ có tại đây: https://gist.github.com/superbob/6548493 , nó hỗ trợ khởi tạo từ quần short hoặc dài
byte[] eightBytesAgain = toBytes(0x0102030405060708L);