我有一個小問題。我怎樣才能得到byte array
,並保存爲String
。我的意思是如果y字節數組太大,我怎麼能從它創建幾個字符串。作爲一個例子,我第一次只得到字節的50位/字節,第二次是下一個50位等。有什麼想法?Android將字符串轉換爲字節[] - 將字節[]寫在零件上
3
A
回答
6
使用String.getBytes()
方法。
0
將您的字節數組轉換爲Base64字符串然後將其分割。之後在合併階段合併該字符串,然後將結果轉換爲Base64。 或者,如果你的內存限制第一分割你的字節數組一些字節數組
byte[] origBytes = ...;
//a loop for splitting bytes
byte[] splittedBytes1 = ...;
byte[] splittedBytes2 = ...;
...
String strbytes1 = Base64.encodeBytes(splittedBytes1);
String strbytes2 = Base64.encodeBytes(splittedBytes2);
...
+0
我沒有看到'Base64.encodeBytes(String)'方法。我錯過了什麼嗎? –
1
如果你需要創建一個字符串,你需要多幾倍的內存比所有字節的大小。
首先,字符串是一個字符數組,字符大小爲2個字節。其次,字符串是一個不可變的對象,所以不可能用現有的數組創建它,所以爲了構造它,字符數組的第二個副本將被創建。如果內存消耗至關重要,請考慮使用CharSequence
而不是String
。
最後,使用StringBuilder
或StringWriter
,如:
String writer = new StringWriter();
writer.write(new String(byteArrayChunk1, "UTF-8"));
...
writer.write(new String(byteArrayChunkN, "UTF-8"));
String resultString = writer.toString();
UPDATE: 另一種選擇,更美好,我想:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write(byteArrayChunk1);
baos.write(byteArrayChunkN);
String resultString = baos.toString("UTF-8");
相關問題
- 1. Android - 將字符串轉換爲字節[]
- 2. 將字節格式字符串轉換爲字節數組android
- 3. 將字節值存儲在字符串中?將字節轉換爲字符串?
- 4. Java - 將字節[]轉換爲字符串
- 5. 將字節轉換爲字符串
- 6. 將字節轉換爲字符串
- 7. 將字符串轉換爲字節[]
- 8. 將字符串轉換爲字節
- 9. 將字節[]轉換爲UTF8字符串
- 10. 將字符串轉換爲字節
- 11. 將字符串轉換爲字節
- 12. 將字符串轉換爲utf8字節
- 13. 將字符串[]轉換爲字節[] 2個字符轉換爲字節?
- 14. 將字節轉換爲實際字節類型的字符串
- 15. 將單字節轉換爲字符串並返回字節
- 16. 字節[]將字符串轉換爲字節[] - 如何操作?
- 17. 如何將字節字符串轉換爲字節[]
- 18. 將Java字符串轉換爲16字節的字節數組
- 19. C#將字節字符串轉換爲字節數組
- 20. 將字節數組轉換爲字符串的字節數
- 21. 將字符串數組(字節值)轉換爲字節數組
- 22. 將字符串轉換爲字節數組並將字節數組轉換爲字符串
- 23. 如何將PDF字節[]轉換爲字符串並將字符串轉換爲PDF字節[]
- 24. 將unicode字符串轉換爲字節字符串
- 25. C#將字節數組與字符串轉換爲字符串
- 26. 將字節字符串轉換爲python中的字符串
- 27. 字符串轉換爲字節[]和轉換字節[]串
- 28. 將xml節點轉換爲字符串
- 29. 將字符串轉換爲xml節點
- 30. 字符串轉換爲字節轉換
但我應該怎麼做,如果我的字節[ ]太大了,當我嘗試從它創建字符串時,它會拋出一個outofmemoryexception? –
@Bombastic使用String.substring(beginIndex,endIndex).getBytes() – adatapost
其實我認爲,將字符串的特定部分轉換爲byte []。我需要相反的。在bye []中獲得前200個字符並將它們串起來。 –