我使用一種方法使用XMLOutputter,FileWriter和BufferedWriter創建xml文件。它工作正常,但XML文件可以更大(超過10兆),我與他們很多。將文件轉換爲xml,然後將它們添加到zip
我想找到一種方法直接將文件寫入壓縮文件,保持文件體系結構。我使用的方法會將不同的xml文件依次添加到主文件夾中。
我想改變我的方法,所以它不會刪除已存檔的文件,只是將它們添加到它。
隨着我一直在研究如何做到這一點,我明白我需要從現有的存檔中獲取文件,將新文件附加到該文件並再次壓縮。我想用zipInputStream和zipOutputStream來做到這一點。
這個問題的接受答案Java appending files into a zip是我想要做的最好的例子,但第一次我會使用該方法,zip文件不存在,我不會在一個文件中添加多個文件時間到檔案。我想我可以通過一個if語句來解決這個問題,該語句將檢查zip文件是否存在,並在方法參數中使用file而不是file []。
我面臨的主要問題是找到一種方法來創建一個xml文件,而無需將其寫入磁盤並將其壓縮到zip文件。
我的猜測是創建一個臨時文件並在壓縮完成後刪除它。
有關我如何實現這一點的任何想法?
這裏是我的代碼示例:
XMLOutputter objOut = new XMLOutputter();
objOut.setFormat(Format.getPrettyFormat());
File objBaseDirectory = new File(m_strFolder); // folder where the xml file will be written but not main xml folder
if(!objBaseDirectory.exists())
{objBaseDirectory.mkdirs();}
FileWriter objFileWriter = new FileWriter(m_strFile); // xml file name
BufferedWriter objBuffer = new BufferedWriter(objFileWriter);
objOut.output(m_objectToWrite.toXml(0), objBuffer); // source file to convert to xml
這工作得很好,並寫入XML文件到正確的文件夾。
任何人都可以幫我解決這個問題嗎?
大,非常感謝我現在好理解並最終能夠解決這個問題。 – jpl