जावा XML एनकोडरऑब्जेक्ट को सेव करें,XMLConcoderपुनः स्थापित किए गए
जावावस्तु के साथXML प्रारूपयहां एक नमूना प्रोग्राम दिया गया है जो डेटा को सहेजने का तरीका दर्शाता है।
XML आउटपुट में शामिल हैजावा.बीन्स.एक्सएमएलएनकोडरइस का उपयोग करें।
भीजावा.बीन्स.एक्सएमएलडिकोडरहम एक नमूना प्रोग्राम भी प्रस्तुत करेंगे जो सहेजी गई वस्तुओं को पुनर्स्थापित करने के लिए इस विधि का उपयोग करता है।
नमूना कार्यक्रम
- प्राइवेट घोषित किए गए फ़ील्ड तब सेव हो जाते हैं जब गेटर और सेटर मेथड परिभाषित किए जाते हैं।
- XML फ़ाइल तभी सहेजी जाती है जब वेरिएबल्स में कोई बदलाव होता है।
- आप सहेजने के लिए ऑब्जेक्ट भी निर्दिष्ट कर सकते हैं, जैसे कि java.util.HashMap या java.util.ArrayList। यह किसी ऑब्जेक्ट की स्थिति को सहेजने के लिए सुविधाजनक है।
// बाइट डेटा को एक फ़ाइल में आउटपुट करें
fileStream = new FileOutputStream(path);
फ़ाइलस्ट्रीम.राइट(xmlbuff);
फ़ाइलस्ट्रीम.फ्लश();
} अंत में {
यदि (enc != null) {
enc.close();
}
यदि (आउट != null) {
आउट.क्लोज();
}
यदि (फ़ाइलस्ट्रीम != null) {
फ़ाइलस्ट्रीम.बंद करें();
}
}
}
/**
* निर्दिष्ट पथ [path] पर स्थित XML फ़ाइल से ऑब्जेक्ट्स को पुनर्स्थापित करता है।
* XML फ़ाइल को java.beans.XMLEncoder का उपयोग करके सहेजा जाना चाहिए।
* @param path वह पथ जहाँ ऑब्जेक्ट संग्रहीत है।
* @throws FileNotFoundException
* यदि पथ नाम द्वारा निर्दिष्ट फ़ाइल मौजूद नहीं है
*/
पब्लिक स्टैटिक ऑब्जेक्ट रीडएक्सएमएल (स्ट्रिंग पथ) थ्रो फाइलनॉटफाउंड एक्सेप्शन {
XMLDecoder d = null;
कोशिश {
d = new XMLDecoder(new BufferedInputStream(
नया फ़ाइलइनपुटस्ट्रीम (पथ));
d.readObject() लौटाएँ;
} अंत में {
यदि (d != null) {
डी. बंद करें();
}
}
}
*निम्नलिखित क्लास को सहेजे जाने वाली क्लास के उदाहरण के रूप में उपयोग किया जाएगा।
निष्पादन परिणाम
◆उदाहरण
// XML से FreeSoft क्लास इंस्टेंस को पुनर्स्थापित करें
FreeSoft freeSoft2 = (FreeSoft)readXML(“C:\\FreeSoft.xml”);
System.out.println("सॉफ्टवेयर का नाम: " + freeSoft2.getName());
System.out.println(“URL:”+freeSoft2.getUrl());
} कैच (अपवाद ई) {
e.printStackTrace();
}
}
◆आउटपुट परिणाम
सॉफ्टवेयर का नाम: चैट और मैसेंजर! यूआरएल: https://chat-messenger.com/
◆C:\\FreeSoft.xml की सामग्री
सेवा का उपयोग करते समय ध्यान रखने योग्य बातें
जबकि java.beans.XMLEncoder और java.beans.XMLDecoder क्लास सुविधाजनक हैं, चैट और मैसेंजर के साथ व्यावहारिक उपयोग में, हमने एक अत्यंत दुर्लभ समस्या देखी है जहां java.beans.XMLEncoder का उपयोग करके XML में आउटपुट करते समय फ़ाइल 0 बाइट्स की हो जाती है।
शून्य बाइट वाली फ़ाइल को पढ़ने पर "मानक त्रुटि आउटपुट" में ParseException लॉग हो जाएगा।
ऐसा इसलिए होता है क्योंकि FileOutputStream इंस्टेंस बनाते समय फाइल खाली हो जाती है।
मेरा मानना है कि ऐसा तब होता है जब जावा प्रक्रिया FileOutputStream इंस्टेंस बनाने के बाद लेकिन XML डेटा आउटपुट करने से पहले बंद हो जाती है।
चैट एंड मैसेंजर इस समस्या से बचने के लिए बैकअप फाइलें बनाकर इसका समाधान कर रहा है।
