0

如何克服字符串大小限制。

似乎对大小大于 64k 的字符串调用解码失败。

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

我尝试过alerts,包括使用

        Base64InputStream bs64 = new Base64InputStream(is);

然后尝试从 bs64 流中获取。

然而,似乎读取大尺寸会导致解码错误。(如果原始方式的大小低于 64k,它不会出错。我花了一整天的时间试图弄清楚这个..

4

2 回答 2

4

您可以将字符串解码为较小的块。一次解码 3 个字节或多个 3 个字节的块(1024 会很好)。

于 2012-04-23T16:12:06.633 回答
1

尝试将字符串分成块(通过将字符串转换为字节)。对每个块(字节块)进行编码,直到你完成对完整字符串的编码。另一方面。解码每个块,然后组合以获取字符串。

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

于 2012-08-06T07:24:22.303 回答