जैसा कि अन्य ने इंगित किया है, आप ज़िप फ़ाइल बनाने के लिए ZipOutputStream
कक्षा का उपयोग कर सकते हैं। ZipOutputStream
में जेएक्सबी एक्सएमएल डेटा लिखने (marshalling) लिखने से पहले 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();
}
}
स्रोत
2011-08-20 12:05:27
आप JAXB का उपयोग करके एक XML फ़ाइल क्यों लिखेंगे? आप ज़िप को सीधे –
पर कॉपी क्यों नहीं करेंगे ज़िप इसे संपीड़ित करने के बजाय सबकुछ संग्रहित करने के लिए अधिक है। यद्यपि यह संपादक वास्तव में फ़ाइलों को संभालता है, मुझे एक समाधान की आवश्यकता होती है जिसने मुझे त्वरित परिवर्तनों के लिए संपादक के बाहर फ़ाइलों को बदलने की अनुमति दी। – kdgwill