जब आप जावा में किसी ऑब्जेक्ट को क्रमबद्ध करते हैं, तो आप डेटा को बाइट स्ट्रीम में परिवर्तित करते हैं जो बाद में मूल डेटा की प्रतिलिपि में परिवर्तित हो जाते हैं। यदि यह भ्रमित करने वाला लगता है, तो निम्नलिखित शब्दों में क्रमांकन के बारे में सोचें। आप किसी दस्तावेज़ पर काम कर रहे हैं और फिर उसे अपनी हार्ड ड्राइव में सहेजते हैं। आप बोलने के तरीके से डेटा को क्रमबद्ध कर रहे हैं ताकि आप बाद में उस प्रति को पुनः प्राप्त कर सकें। क्रमांकन नेटवर्क पर डेटा के हस्तांतरण को बहुत आसान और अधिक कुशल बनाता है।
किसी ऑब्जेक्ट को क्रमबद्ध करने से पहले यह महत्वपूर्ण है कि आप जावा की मूल बातें समझें। यदि आपने पास्कल और C के पुराने संस्करणों जैसी प्रोग्रामिंग भाषाओं का उपयोग किया है, तो आप जानेंगे कि ऑब्जेक्ट क्रमांकन के बिना, प्रोग्रामर को डेटा को स्टोर और लोड करने के लिए एक अलग I/O टेक्स्ट फ़ाइल बनानी होती है। जावा में ऑब्जेक्ट क्रमांकन डेटा को स्टोर करने, समय और प्रोग्रामिंग लागत बचाने के लिए इस टेक्स्ट फ़ाइल को बनाने से बचता है। निम्न आलेख में जावा में किसी ऑब्जेक्ट को क्रमबद्ध करने के चरण शामिल हैं। इस आलेख में नमूना कोड जावा डेवलपर्स पंचांग 1.4 के सौजन्य से उपयोग किया गया है।
कदम
चरण 1. जावा कोडिंग ऑब्जेक्ट खोलें जिसके लिए क्रमांकन की आवश्यकता है या स्क्रैच से एक बनाएं।
चरण 2. जावा में उस ऑब्जेक्ट का चयन करें जिसे आप क्रमबद्ध करना चाहते हैं।
इस उदाहरण में, हम उस ऑब्जेक्ट को "MyObject" कहेंगे।
चरण 3. Java.io. Serialize इंटरफ़ेस को लागू करने के लिए MyObject वर्ग बनाकर जावा में ऑब्जेक्ट क्रमांकन सक्षम करें।
बस "पब्लिक क्लास MyObject" लाइन की जगह, कोड की शुरुआत में निम्नलिखित कोड लाइन जोड़ें। पब्लिक क्लास MyObject java.io. Serializable को लागू करता है
चरण 4। अब आपकी वस्तु क्रमबद्ध है, इसका मतलब है कि इसे आउटपुट स्ट्रीम द्वारा लिखा जा सकता है, जैसे:
-
निम्न कोड पंक्तियाँ बताती हैं कि किसी फ़ाइल या डिस्क पर MyObject (या किसी क्रमागत वस्तु) को कैसे लिखना है।
प्रयत्न{
// डेटा ऑब्जेक्ट को फ़ाइल में क्रमबद्ध करें
ऑब्जेक्टऑटपुटस्ट्रीम आउट = नया ऑब्जेक्टऑटपुटस्ट्रीम (नया फ़ाइलऑटपुटस्ट्रीम ("MyObject.ser"));
आउट.राइटऑब्जेक्ट (ऑब्जेक्ट);
बाहर। बंद ();
// डेटा ऑब्जेक्ट को बाइट सरणी में क्रमबद्ध करें
ByteArrayOutputStream bos = new ByteArrayOutputStream ();
आउट = नया ऑब्जेक्टऑटपुटस्ट्रीम (बॉस);
आउट.राइटऑब्जेक्ट (ऑब्जेक्ट);
बाहर। बंद ();
// क्रमबद्ध वस्तु के बाइट प्राप्त करें
बाइट buf = bos.toByteArray ();
} कैच (IOException e) {
}
चरण 5. इसे इस तरह पढ़ा जा सकता है:
-
कोशिश करें { FileInputStream दरवाजा = नया FileInputStream ("name_of_file.sav"); ऑब्जेक्ट इनपुटस्ट्रीम रीडर = नया ऑब्जेक्ट इनपुटस्ट्रीम (दरवाजा); MyObject x = नया MyObject (); x = (माईऑब्जेक्ट) रीडर.नेक्स्टऑब्जेक्ट ();}कैच (आईओएक्सप्शन ई){ ई.प्रिंटस्टैकट्रेस ();}
चरण 6. जावा प्रोग्राम के भीतर क्रमबद्ध ऑब्जेक्ट कोड निष्पादित करें ताकि यह सुनिश्चित हो सके कि यह प्रभावी रूप से संचालित होता है (वैकल्पिक)।
चरण 7. जावा में क्रमबद्ध वस्तु को सहेजें और बंद करें।
टिप्स
- जावा एसई डेवलपमेंट किट 6 में सीरियलाइज़ेशन एन्हांसमेंट आपको ऑब्जेक्टस्ट्रीम क्लास का उपयोग करने की अनुमति देता है, किसी भी गैर-क्रमिक वर्ग ऑब्जेक्ट को संभालने के लिए किसी भी विधि को देखें।
- बड़े ऑब्जेक्ट ट्री में पढ़ने और लिखने के समय में सुधार करने के लिए, उदाहरण के लिए "क्षणिक" कीवर्ड का उपयोग करें, जिन्हें क्रमांकन की आवश्यकता नहीं है। इससे प्रदर्शन में वृद्धि होगी कि अब आप क्रमांकन प्रक्रिया में अनावश्यक डेटा को पढ़ और लिख नहीं रहे हैं।
चेतावनी
- जावा लगभग वार्षिक आधार पर अपने डेवलपर किट का एक नया संस्करण लेकर आता है। नए संस्करणों में अपग्रेड और परिवर्तन शामिल हैं कि आप जावा में किसी ऑब्जेक्ट को कैसे क्रमबद्ध कर सकते हैं। इसलिए, आपके द्वारा उपयोग किए जा रहे संस्करण में परिवर्तनों की निगरानी करना महत्वपूर्ण है।
- वस्तुओं को क्रमबद्ध करते समय, आप डेटा स्ट्रीम को एन्क्रिप्ट नहीं कर सकते। इसलिए, यदि आवश्यक हो, तो आपको डेटा की सुरक्षा के लिए अन्य अनुप्रयोगों या द्वितीयक नेटवर्क परिवहन प्रक्रियाओं पर निर्भर रहने की आवश्यकता होगी।
- वर्तमान में ऐसा कोई विकल्प नहीं है जो आपको रैंडम एक्सेस फ़ाइल में ऑब्जेक्ट लिखने की अनुमति देता हो। इसके बजाय, आप बाइट ऐरे इनपुट आउटपुट स्ट्रीम को प्लेसहोल्डर के रूप में उपयोग कर सकते हैं जिससे वस्तुओं को पढ़ने और लिखने के लिए। हालांकि, सुनिश्चित करें कि पूरी वस्तु बाइट ऐरे स्ट्रीम में है या प्रक्रिया विफल हो जाएगी।