gpt4 book ai didi

java - 将大量 XML(文件对象)转换为包含所有文件内容的单个字符串

转载 作者:行者123 更新时间:2023-12-01 16:01:38 25 4
gpt4 key购买 nike

执行最多 500 个 XML 文件(每个大小最多 50 Mb)的转换并从中生成单个字符串的最有效(性能方面)和简洁的方法是什么。所有文件都是XML,需要保留格式等。

我目前正在使用 XMLEventReader 进行读取,然后使用 XMLEventWriter 进行读取,一次读取一个事件并使用 StringBuilder 连接所有字符串结果。然后在方法末尾将其转换为 String,但这会由于 IDE 中缺少 Java 堆空间而崩溃,远远早于 500 个文件...

谢谢!

最佳答案

此字符串对象的大小最大为 50 GB (50 MByte * 500 * 2)。你知道这一点,是吗?

当您谈论输入文件并希望将序列化的 xml 数据保留在字符串中时,您不必解析文件,而只需将文件内容附加到 StringBuilder 即可。

假设所有文件都在一个文件夹中,并且在 commons-io 的帮助下,这应该可以做到(...不是在我的 4 GB RAM 的机器上,顺便说一句):

 File[] files = parentFolder.list();
StringBuilder veryVeryBigBuilder = new StringBuilder();
for (File file: files) {
if (isXmlFile(file)) {
veryVeryBigBuilder.append(FileUtils.readFileToString(), encoding);
}
}

关于java - 将大量 XML(文件对象)转换为包含所有文件内容的单个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3726050/

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