How to convert two longs to a byte array = how to convert UUID to byte array?
arrays, java, long-integer, uuid
Solution
You can use ByteBuffer
byte[] bytes = new byte[16];
ByteBuffer bb = ByteBuffer.wrap(bytes);
bb.order(ByteOrder.LITTLE_ENDIAN or ByteOrder.BIG_ENDIAN);
bb.putLong(UUID.getMostSignificantBits());
bb.putLong(UUID.getLeastSignificantBits());
// to reverse
bb.flip();
UUID uuid = new UUID(bb.getLong(), bb.getLong());
Problem
I am using Javas `UUID` and need to convert a UUID to a byte Array. Strangely the UUID Class does not provide a `"toBytes()"` method. I already found out about the two methods: ``` UUID.getMostSignificantBits() and UUID.getLeasSignificantBits() ``` But how to get this into a byte array? the result should be a byte[] with those tow values. I somehow need to do Bitshifting but, how? update: I found: ``` ByteBuffer byteBuffer = MappedByteBuffer.allocate(2); byteBuffer.putLong(uuid.getMostSignificantBits()); byteBuffer.putLong(uuid.getLeastSignificantBits()); ``` Is this approach corret? Are there any other methods (for learning purposes)? Thanks very much!! Jens