如何克服字符串大小限制。
似乎在大小超过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的原始方式,它不会出错。我花了一整天的时间来试图找到这个......
答案 0 :(得分:4)
您可以用较小的块解码字符串。一次解码3个字节的块或多个3个字节(1024个可以很好地完成)。
答案 1 :(得分:1)
尝试将字符串分解为块(通过将字符串转换为字节)。对每个块(字节块)进行编码,直到完成对完整字符串的编码。 另一方面。解码每个块然后组合以获取字符串。
注意:不要组合所有块(字节块)然后尝试解码它,因为我这样做并且解码错误。