![](/img/trans.png)
[英]Is there a way to display all the contents in a file as it is using a single string object
[英]Transforming lots of XMLs (File objects) into a single String with all the files' contents
什么是执行转换(最多容纳500个XML文件,每个大小最大为50 Mb并从其中制作单个String)的最有效(性能方面)的干净方法。 所有文件都是XML,需要保留格式等。
我当前正在使用XMLEventReader和XMLEventWriter进行读取,一次读取一个事件,并使用StringBuilder连接所有String结果。 然后在方法末尾将其放入String中,但是由于IDE中缺少Java堆空间(在500个文件之前)而崩溃。
谢谢 !
此String对象的大小最大为50 GB(50 MB * 500 * 2)。 您知道吗?
在谈论输入文件并希望将序列化的xml数据保留在String中时,您不必解析文件,而只需将文件内容附加到StringBuilder。
假设所有文件都在一个文件夹中,并且在commons-io的帮助下,应该这样做(...在我的机器上没有4 GB Ram,btw):
File[] files = parentFolder.list();
StringBuilder veryVeryBigBuilder = new StringBuilder();
for (File file: files) {
if (isXmlFile(file)) {
veryVeryBigBuilder.append(FileUtils.readFileToString(), encoding);
}
}
您真的需要担心它们是XML吗? 您不能使用BufferedReader
逐行依次读取每个文件,而只是将所有行输出到PrintWriter
吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.