我需要一種方法來將字節[]轉換爲字符串而不創建新的字符串對象。字節數組到字符串在Android
我不想要什麼:
String s= new String(byte[], int offset, int byteCount);
是否有另一種方式來達到同樣的事情,而無需創建一個新的String對象?
我一直在尋找Base64類。那樣有用嗎?
我需要一種方法來將字節[]轉換爲字符串而不創建新的字符串對象。字節數組到字符串在Android
我不想要什麼:
String s= new String(byte[], int offset, int byteCount);
是否有另一種方式來達到同樣的事情,而無需創建一個新的String對象?
我一直在尋找Base64類。那樣有用嗎?
這隻有在某個地方有可能獲得從每個輸入生成的字符串緩存時纔有可能。
字符串是不變的,所以你不能把新的數據到現有串 - 所以,除非你能找到其已經有正確的數據(緩存我前面提到的),你會現有字符串必須創建一個新的字符串。
(我也強烈建議您指定編碼要使用的,而不是依靠系統默認編碼的字符。)
當然,如果這不是真正編碼的文本入手(例如,如果byte[]
數據來自圖像),那麼無論如何Base64會更合適 - 但是這與您是否需要新字符串是正交的。
只需將Base64.java文件放入您的項目包中即可。 &使用 String str = Base64.encodeBytes(byte array);這將給u字節[]字符串轉換。你可以從http://iharder.sourceforge.net/current/java/base64/下載base64.java
你想創建一個String對象而不創建它? :\ – amit 2012-02-26 08:09:01
你爲什麼認爲你需要這個? – 2012-02-26 08:11:00
內存問題。我得到噸和噸字節數組,我需要變成字符串。垃圾收集似乎不能很好地工作,因爲一段時間後我會發現內存異常。 – user1233527 2012-02-26 08:25:46