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