字符串到字节[]和字节到字符串

时间:2014-03-05 11:49:40

标签: java string byte

给出以下示例:

String f="FF00000000000000";
byte[] bytes = DatatypeConverter.parseHexBinary(f);
String f2= new String (bytes);

我希望输出为FF00000000000000,但它不能使用此方法。

1 个答案:

答案 0 :(得分:3)

您目前正在尝试将字节解释为使用平台默认编码(UTF-8,ISO-8859-1或其他)进行文本编码。那不是你真正想要做的 - 你想把它转换回十六进制。

为此,只需查看您用于解析步骤的转换器,并查找相反方向的类似方法。在这种情况下,您需要printHexBinary

String f2 = DatatypeConverter.printHexBinary(bytes);

“在原始操作附近寻找反向操作”的方法通常是有用的...但请注意,有时您需要查看并行类型,例如: DataInputStream / DataOutputStream。当您发现自己使用完全不同的类型进行逆操作时,这通常是一个警示标志。 (这并不总是错的,只是值得研究其他选择。)