2012-04-23 73 views
0

如何克服字符串大小限制。JavaME Base64InputStream.decode()限於64k字符串大小

似乎調用大於64k的字符串的解碼失敗。

 is = con.openInputStream(); 
     String str = new String(IOUtilities.streamToBytes(is), "UTF-8"); 
     byte[] theArray = Base64InputStream.decode(str); 

我用盡alsorts,包括使用

 Base64InputStream bs64 = new Base64InputStream(is); 

然後試圖從bs64流走。

看來然而,讀取大尺寸會導致解碼錯誤。 (如果尺寸小於64K,我會花費一整天的時間來試圖找出這個問題......

回答

4

你可以用較小的塊來解碼你的字符串。解碼3個字節的塊或者多個3字節的塊(1024

+0

我已經試過了。但仍然遇到解碼錯誤。 – Doomsknight 2012-04-24 08:12:21

1

嘗試將字符串拆分成塊(通過將字符串轉換爲字節)。對每個塊(字節塊)進行編碼,直到完成對完整字符串的編碼 另一方面,解碼每個塊然後結合得到字符串返回

注意:不要合併所有塊(字節塊),然後嘗試解碼它,因爲我這樣做,並得到解碼錯誤

相關問題