2012-04-23 71 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

尝试将字符串拆分成块(通过将字符串转换为字节)。对每个块(字节块)进行编码,直到完成对完整字符串的编码 另一方面,解码每个块然后结合得到字符串返回

注意:不要合并所有块(字节块),然后尝试解码它,因为我这样做,并得到解码错误

相关问题