将Base64字符串转换为Java中的字节值字符串

将Base64字符串转换为Java中的字节值字符串

问题描述:

我有一个Base64字符串,它是'AAAC',它在二进制中相当于3个字节(00000000 00000000 00000010)。将Base64字符串转换为Java中的字节值字符串

我想将'AAAC'转换为ASCII十六进制字节串以输出类似'000002'的东西。

我在下面试过。

byte[] test = Base64.decode(data.getBytes()); 
StringBuilder sb = new StringBuilder(); 
for (byte b : test) { 
    sb.append(String.format("%02X ", b)); 
} 
System.out.println(sb.toString()); 
//Output: 00 00 02 

这有效,但有没有更好的方法来做到这一点?

任何帮助,将不胜感激。 在此先感谢。

你可以使用这个DatatypeConverter类:

String result = 
    DatatypeConverter.printHexBinary(DatatypeConverter 
     .parseBase64Binary("AAAC")); 

System.out.println(result); 

打印:000002

随着Guava library,这可能看起来像

BaseEncoding.base16().toUpperCase().withSeparator(" ", 2) 
    .encode(BaseEncoding.base64().decode(data));