我只需要將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