0
我试图将字节数组转换为具有以下代码段的字符串。但由于某些原因,当我的byte []转换成字符串,它在文件中改变了一些内容从字节数组到字符串的数据转换
代码
public String convertToString(byte[] byteArr)
{
public static final int BYTE_MASK = 0xFF;
StringBuilder strBldr = new StringBuilder();
for(int i = 0; i < byteArr.length; i++) {
strBldr.append((char) (byteArr[i] & BYTE_MASK));
}
return strBldr.toString();
}
我已经添加了两个文件名为预期的文件,并生成数据文件
预期文件:
00 39 00 00 46 91 00 00 00 17 16 02 16 16 39 31
0b 00 3a 00 78 09 60 40 26 64 50 41 50 20 48 49
47 20 52 4d 20 20 04 00 80 4b 02 00 a0 ea 01 00
64 00 ec 05 00 00 00 00 00
生成的文件:
00 39 00 00 46 3f 00 00 00 17 16 02 16 16 39 31
0b 00 3a 00 78 09 60 40 26 64 50 41 50 20 48 49
47 20 52 4d 20 20 04 00 3f 4b 02 00 a0 ea 01 00
64 00 ec 05 00 00 00 00 00
如果你看到这两个文件,则有望文件数据应为“91”(第一行,第六元素)和它在生成的文件3F。
任何想法如何得到正确的输出?
尝试:新的字符串(byteArr); ? – Stultuske
你如何将字节转换回字节[]? – Ferrybig
[Java Byte Array to String to Byte Array]可能重复(http://stackoverflow.com/questions/6684665/java-byte-array-to-string-to-byte-array) – SomeJavaGuy