我只需要将byte []转换为String。然后用该字符串做一些事情并将其转换回byte []数组。但在这个测试中,我只是将byte []转换为字符串并将其转换回byte [],结果不同。将字节数组串连到字节数组
通过使用这个字节[]转换为字符串:
byte[] byteEntity = EntityUtils.toByteArray(entity);
String s = new String(byteEntity,"UTF-8");
然后我试图:
byte[] byteTest = s.getBytes("UTF-8");
然后我complared它:
if (byteEntity.equals(byteTest) Log.i("test","equal");
else Log.i("test","diff");
所以结果是不同。
我在stackoverflow中搜索了这个,但它不符合我的情况。关键是我的数据是.png图片,所以转换的字符串是不可读的。提前致谢。
您正在使用'Array.equals',它不会做你认为它正在做的事。你有没有尝试转换回'字符串'和比较这些值? –
你能详细说明你为什么这么做吗?具体来说,你用不可读的字符串做什么? 如果您正在尝试执行的操作,图像最好存储为base64编码的字符串)。 – josephus
我的观点是我有图像加密在服务器上,当我通过使用'response = httppost.execute()' - >'entity = response.getEntity' - >'byte [] byteEntity = EntityUtils.toByteArray(entity )'那么我必须将此字节[]转换为字符串,然后用解码密钥进行异或(其实我试图解密,而不是转换为字符串,但不幸的是它不工作。)之后,我必须再次将它转换为byte [],以使其成为ByteArrayOutputStream,如果您对更好的方法有任何想法,非常感谢。 – majorl3oat