如何克服字符串大小的限制。
似乎在大于64k的字符串上调用decode失败。
is = con.openInputStream();
String str = new String(IOUtilities.streamToBytes(is), "UTF-8");
byte[] theArray = Base64InputStream.decode(str);
我尝试过所有排序,包括使用
Base64InputStream bs64 = new Base64InputStream(is);
然后尝试从bs64流中获取。
然而,读取过大的数据似乎会导致解码错误。(如果大小小于64k,则不会出错。我花了一整天的时间试图弄清楚这一点..
发布于 2012-04-23 16:12:07
您可以将字符串解码为较小的块。一次解码3个字节的块或多个3个字节(1024就足够了)。
发布于 2012-08-06 07:24:22
尝试将字符串分成块(通过将字符串转换为字节)。对每个块(字节块)进行编码,直到您完成对完整字符串的编码。在另一边。对每个块进行解码,然后组合以获得字符串。
注意:不要合并所有的块(字节块),然后尝试解码它,因为我这样做了,得到了解码错误。
https://stackoverflow.com/questions/10283778
复制