我使用一种方法使用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