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

时间:2014-10-27 13:19:19

标签: java string binary base64 ascii

我有一个Base64字符串,它是'AAAC',二进制相当于3字节(00000000 00000000 00000010)。

我想将'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 

这样可行,但有更方便的方法吗?

任何帮助将不胜感激。 提前谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用DatatypeConverter类:

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

System.out.println(result);

打印:000002

答案 1 :(得分:1)

使用Guava library,这可能类似于

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