我想使用UUID
类型并以Base64
编码格式输出它,但是鉴于Base64
上的输入方法和UUID
上的输出,如何实现这一点似乎并不明显。
更新尽管不是我的用例的明确要求,但很高兴知道所使用的方法是否使用了UUID的原始UUID(实际上是UUID的128位),就像标准十六进制编码一样。
最佳答案
首先,将您的UUID转换为字节缓冲区,以供 Base64
encoder使用:
ByteBuffer uuidBytes = ByteBuffer.wrap(new bytes[16]);
uuidBytes.putLong(uuid.getMostSignificantBits());
uuidBytes.putLong(uuid.getLeastSignificantBits());
然后使用编码器对其进行编码:
byte[] encoded = encoder.encode(uuidBytes);
或者,您可以获取如下所示的Base64编码的字符串:
String encoded = encoder.encodeToString(uuidBytes);