在不使用第 3 方库的情况下,使用 JAXB 将 XML 文件列表直接写入 zip 存档的正确方法是什么。
将所有 XML 文件写入一个目录然后压缩会更好吗?
最佳答案
正如其他人所指出的,您可以使用 ZipOutputStream
类来创建 ZIP 文件。将多个文件放入单个 ZIP 文件的技巧是在将 JAXB XML 数据写入(编码)ZipOutputStream
之前使用 ZipEntry
描述符。所以您的代码可能看起来与此类似:
JAXBElement jaxbElement1 = objectFactory.createRoot(rootType);
JAXBElement jaxbElement2 = objectFactory.createRoot(rootType);
ZipOutputStream zos = null;
try {
zos = new ZipOutputStream(new FileOutputStream("xml-file.zip"));
// add zip-entry descriptor
ZipEntry ze1 = new ZipEntry("xml-file-1.xml");
zos.putNextEntry(ze1);
// add zip-entry data
marshaller.marshal(jaxbElement1, zos);
ZipEntry ze2 = new ZipEntry("xml-file-2.xml");
zos.putNextEntry(ze2);
marshaller.marshal(jaxbElement2, zos);
zos.flush();
} finally {
if (zos != null) {
zos.close();
}
}
关于java - 如何将 XML 文件直接写入 zip 存档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7129421/