簡體   English   中英

將許多XML(文件對象)轉換為具有所有文件內容的單個字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM