Java 使用DatatypeConverter.parseBase64Binary时出现异常

Java 使用DatatypeConverter.parseBase64Binary时出现异常,java,base64,Java,Base64,我正在发送一个png数据的json字符串,我想将该图像保存到磁盘 jsonInputString= URLDecoder.decode( inputString, "UTF-8" ); jsonInputString= jsonInputString.substring(inputStrjsonInputStringing.indexOf(",")+1); byte[] decodedBytes = DatatypeConverter.parseBase64Binary(jsonInputStr

我正在发送一个png数据的json字符串,我想将该图像保存到磁盘

jsonInputString= URLDecoder.decode( inputString, "UTF-8" );
jsonInputString= jsonInputString.substring(inputStrjsonInputStringing.indexOf(",")+1);
byte[] decodedBytes = DatatypeConverter.parseBase64Binary(jsonInputString);
jsonInputString经过清理后:

IVBORW0KGGOAAAANSUHEUGALGAAABKCAYAAABAQU4JAAAOUULEQVR4xU3dGZUMYWIG4BEKIARWBEGEGGIUAEIQARSBIGAEXJV7/NqX5kzs9szXd3Ts/P1OXtcV3d191fl9n+rqqsv/F3VTrariecBag0E7G7YDWZBagBagBagBagBagBagBagBagBagQeQeQeQeQeQeQeQeQeQeQeQeQeQeQaQeQeQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaGhabagQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ4.他们的研究成果是一个非常有用的研究成果。这是一个非常有用的研究成果。这是一个非常有用的研究成果。4个研究成果是一个非常有用的研究成果。4个研究成果是一个非常有用的研究成果。6个研究成果是一个非常有用的研究成果。4个研究成果是一个非常有用的研究成果。6个研究成果是一个非常有用的研究成果。6个研究成果是一个研究成果是一个非非政府部门的一个非政府部门,一个8个非政府部门,一个8个非政府部门,一个8个非非非政府的非非政府部门的非非政府部门。8个非政府部门在8个非非政府部门的非政府部门在8个项目中,包括包括包括包括包括8个在8个项目。8个在8个在8个部分,8个部分,8个部分,8个部分,包括在8个在8个部分,在8个在8个8个部分,包括在8个项目的框架的REQsEaqq/RcffjwoXtLML8公斤2 6 6 6 6 6公斤2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 rsgvpjdcra在一个城市中,在一个城市中,在一个城市中,在一个城市中,在一个城市中,在一个城市中,在一个城市中,在一个城市中,在一个城市中,在一个城市中,在一个城市中,在一个城市中,在一个城市中,在一个城市中,在一个城市中,在一个城市中,在一个城市中,在一个城市中,在一个2 2 2个城市中,在一个2 2 2个城市的2 2 2个城市,2个2个2个城市的2 2个城市,在2个2个城市中,在2个城市中,在2个2个2个2个城市,在5 5 5 5 5 5 5个城市中,在2个城市,在5个5个城市中,在2个城市,在5个5个5个5个5个5个5个城市中,在2个城市,在5个5个5个5个5个5个5个5个Y5DXNRSPN78EHOTGABM2.这是一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于+一个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某个关于某某个关于某个关于某个关于某个关于某某某某某某某某个关于某个关于某某某某某某某某某某某某某某某某某某某某某某个关于某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某ZYQY3C3/r3ZUTINBOQMDqYXnv3r2uF(2)FYGY+FFFVVV6(6)FFVV6(6)FFF6(6)FFF6(6)FFF6(6)FFF6(6)F6(8)关于对他们(6)和(6)K/U5(5)在他们的研究中,他们(6)是一个关于他们(6)他们(6(6)是一个(6(6)他们)在他们(6(6)是一个(6)在他们的(6(6)在他们)在他们(6(6)在他们)的)的)他们(6(6(6(6)在他们)在他们(6(6(6)在他们)在他们的)在他们的)的研究中,他们(6(6(6)在他们)在他们的)在他们的)在他们(6(6(6(6(6(6)在他们)的)在他们的)在他们的)在他们(6(6)的)LDOQO3YAZQXP+TCSELQG4月6日,中国政府发布了一份研究报告。6月6日,中国政府发布了一份研究报告。6月6日,中国政府发布了一份研究报告。6月6日,中国政府发布了一份研究报告。6月6日,中国政府发布了一份研究报告。6月6日,中国政府发布了一份研究报告。6月6日,中国政府发布了一份研究报告。6月6月6日,中国政府发布了一份研究报告。6月6月6日,中国政府发布了一份研究报告。6月6月6月6日,中国政府发布了一些非非非非非政府部门的非非政府部门的非非政府的非非政府部门的非政府的非非政府部门的非非政府的非非政府部门的非政府的非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非政府非+deDWsW7Y7epzc6.中国政府的一份研究报告是一份研究报告。一份研究报告是一份研究报告。一份研究报告是一份关于中国政府的一份研究报告。一份研究报告是一份关于中国政府的一份研究报告。一份研究报告是一份关于中国政府的一份研究报告。一份研究报告是一份关于中国政府的一份研究报告。一份研究报告是一份关于中国政府的一份研究成果,一份关于中国政府的一份研究成果,一份研究。一份关于中国政府的一份研究,一份研究,一份关于中国政府的一份中国政府的政府的一份研究报告是在一份研究成果,一份关于中国政府的一份中国政府的合作合作合作合作文件,在一份政府的合作合作文件,在一份政府的一份中国政府的合作文件,在一份政府的合作合作文件,一份政府的合作文件,一份研究,在一份中国政府在一份中国政府的政府的合作合作合作文件,在一份研究。3 BLYZLMANSGW7+eB6vLL2.中国政府的一份研究报告(2)是一份研究报告(2)是一份BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBJLJLI23YOU8/1TrmPie9TajsXAQJTCAhYU一个中国政府的一个中国政府的一个中国政府的一个中国政府的一个中国政府的一个中国政府的一个中国政府的一个中国政府的一个中国政府的一个中国政府的一个中国政府的一个中国政府的一个中国政府的一个中国政府的一个中国政府的一个中国政府的一个中国政府在一个中国政府的一个中国政府的一个中国政府在一个中国的一个中国政府的一个中国政府在一个中国的一个中国政府的一个中国政府的一个中国政府的一个中国政府的一个中国的一个中国政府的一个中国政府的一个中国政府的一个中国政府的一个中国政府的一个8 8 8 8 8 8 8 8 8 8 8 8 8个8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8个Q/质量(Q/质量(Q/质量(8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 VTPJ1tCuglo9QFPS2/aSH4SxvKTspa3HF6.ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZKyoppvw+AWndwp95uGX/Mnc(2)在中国的一个城市里,这个城市的一个城市的一个城市的一个城市的一个城市的一个城市的一个城市的一个城市,一个城市的一个城市,一个城市的一个城市,一个城市的一个城市,一个城市的一个城市,一个城市的一个城市,一个城市的一个城市,一个城市的一个城市,一个城市,一个城市的一个城市,一个城市,一个城市的一个城市,一个城市,一个城市,一个城市的一个城市,一个城市的一个城市,一个城市,一个城市,一个城市,一个城市,一个城市的一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市巴格布贾克主要目的是通过以下方式来实现:一是通过QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQO0FBKZGOIOJCIAAAQIECAHY2GABAGQIECBAOGGNUYVHEECBAGQIAAGF8A8F+SPj1gu94AAAAASUVORK5CYII=

导致

with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException
 at javax.xml.bind.DatatypeConverter.parseBase64Binary(DatatypeConverter.java:296)
它是随机工作的,但是为了让它随机工作,已经有一段时间了

来自web客户端的字符串就是这样出现的

 jsonInputString = ....toDataURL('image/png');
 jsonInputString = encodeURIComponent(jsonInputString );
 console.log(jsonInputString );
感谢任何帮助,以帮助我理解为什么我目前的代码无法工作

更新: JDK1.6
EclipseIndigo

DatatypeConverter.parseBase64Binary()在JavaSDK1.6中不能处理超过65000的数据。在我使用JavaSDK1.6编写的小程序中,我使用了parseBase64Binary(),它总是在数据大于64K时崩溃,在较小的数据时工作正常

您可以使用Java SDK 1.6附带的Base64解码器

import sun.misc.BASE64Decoder;
然后像这样使用它:

BASE64Decoder decoder = new BASE64Decoder();
byte[] decodedBytes = decoder.decodeBuffer(encodedBytes);

如果在添加其他软件包时没有问题,则应使用apache commons Base64.decodeBase64()

DatatypeConverter.parseBase64Binary()不再适用于数据