![](/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.