gpt4 book ai didi

java - 将 XML 中的 Base64 编码数据保存到文件中

转载 作者:行者123 更新时间:2023-11-30 04:51:58 37 4
gpt4 key购买 nike

我正在解析一个包含 Base64 编码图像的 XML。我想提取图像并解析 XML 的其余部分。我编写的提取图像的代码如下:

private void saveFormImage(String imageText) throws IOException {
FileOutputStream fos = null;
try {
Base64 base64=new Base64();
byte decoded[]=base64.decode(imageText.getBytes());
File file = new File(<file loc>);
fos = new FileOutputStream(file);
fos.write(decoded);
} finally {
IOUtils.closeQuietly(fos);
}
}

我使用 JDOM 解析 XML 并首先以字符串形式获取 imageText,然后将该字符串传递给此方法。然后,我使用 Apache 编解码器库对 Base64 编码数据进行解码并存储到文件中。

这是最好的方法吗?这并不是很快。大约2s就完成了。有没有更快、内存效率更高的方法来做到这一点?

正如下面的评论中所更新的那样 - 有没有办法将数据从 XML 直接传输到 OutputStream 并仅解码内存中的缓冲区?这是一种更有效的内存处理方式吗?或者当 XML 大小最大为 2.5 MB 时这应该很重要。

最佳答案

文档的其余 XML 部分怎么样?您想丢弃它吗?

如果是,请查看 STAX(XML 流式 API):

http://docs.oracle.com/javase/7/docs/api/javax/xml/stream/package-summary.html

它是 Java SE 6 的一部分。

如果您还想解析文档的其余部分,请考虑使用自定义绑定(bind)的 JAXB。

关于java - 将 XML 中的 Base64 编码数据保存到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9654642/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com