从Java中的xml解码大型base64:OutOfMemory
作者:互联网
我需要将xml文件的base64编码元素写入一个单独的文件.问题:文件很容易达到100 MB的大小.我尝试的每个解决方案都以“ java.lang.OutOfMemoryError:Java堆空间”结尾.问题不是一般读取xml或解码过程,而是base64块的大小.
我使用jdom,dom4j和XMLStreamReader访问xml文件.但是,一旦我要访问相应元素的base64内容,就会遇到上述错误.我还使用了saxon的base64Binary-to-octets函数尝试了xslt,但是结果相同.
有没有一种方法可以将此base64编码的部分流式传输到文件中,而又不会将整个块都分成一个整体?
谢谢你的提示
安德烈亚斯
解决方法:
尝试使用StAX API(tutorial).对于大型文本元素,您应该获得几个文本事件,需要将这些事件推送到流式Base64实现中(就像提到的一个skaffman).
标签:base64,file-io,out-of-memory,xml,java 来源: https://codeday.me/bug/20191208/2091678.html