जावा ऑब्जेक्ट इनपुटस्ट्रीम

Java Objekta Inaputastrima



'ऑब्जेक्टऑटपुटस्ट्रीम के ऑब्जेक्ट के माध्यम से लिखी गई जानकारी को मुख्य रूप से ऑब्जेक्टइनपुटस्ट्रीम क्लास का उपयोग करके एक्सेस किया जाता है। ObjectInputStream वर्ग का मुख्य उद्देश्य मूल डेटा और संस्थाओं का पुनर्निर्माण करना होगा जो ObjectOutputStream वर्ग को नियोजित करके उत्पादित किए जाते हैं। सॉकेटस्ट्रीम का उपयोग करके, ऑब्जेक्ट इनपुटस्ट्रीम को विभिन्न मेजबानों में वस्तुओं को स्थानांतरित करने के लिए भी नियोजित किया जा सकता है। इसलिए, हमने फ़ाइल इनपुट स्ट्रीम से डेटा पढ़ने के लिए ऑब्जेक्टइनपुटस्ट्रीम क्लास ऑब्जेक्ट को बंद करने के लिए हमारे उबंटू 20.04 सिस्टम के लिए एक सहायक मार्गदर्शिका लिखने का निर्णय लिया है। आइए कंसोल के उद्घाटन के साथ शुरुआत करें।'

उदाहरण 01

अपने लेख का पहला उदाहरण शुरू करते हुए, हम एक नई जावा फ़ाइल 'test.java' बना रहे हैं। उसके बाद, हमने उसी फोल्डर में एक टेक्स्ट फाइल भी जेनरेट की।







जावा प्रोग्राम में इनपुट स्ट्रीम की वस्तुओं को पढ़ने के लिए, हमें आउटपुट स्ट्रीम आयात करने की आवश्यकता होती है। इसलिए, हम शुरुआत में 'java.io.ObjectInputStream' और 'java.io.ObjectOutputStream' पैकेज आयात कर रहे हैं। इसके साथ ही, किसी फ़ाइल में डेटा डालने के लिए, हमें 'java.io.FileInputStream' और 'java.io.FileInputStream' आयात करने की आवश्यकता है। हमने सिंगल मेन () फंक्शन वाले एक क्लास 'मेन' बनाया है।



फ़ंक्शन निष्पादन एक पूर्णांक चर 'डी' की घोषणा से शुरू होता है। त्रुटियों के कारण प्रोग्राम के अचानक बाहर निकलने से बचने के लिए, हमने जावा का ट्राइ-कैच स्टेटमेंट जोड़ा। 'कोशिश' भाग FileOutputStream वर्ग के माध्यम से फ़ाइल आउटपुट स्ट्रीम ऑब्जेक्ट 'f' के आरंभीकरण के साथ शुरू होता है। हमने फ़ाइल नाम 'new.txt' को इस ऑब्जेक्ट 'f' में पास कर दिया है। हमने ऑब्जेक्ट आउटपुट स्ट्रीम 'ओ' बनाया है और फ़ाइल ऑब्जेक्ट 'एफ' को ऑब्जेक्टऑटपुटस्ट्रीम क्लास में पास कर दिया है ताकि फ़ाइल को आउटपुट स्ट्रीम बनाया जा सके।



अगली पंक्ति में, हम जावा आउटपुट स्ट्रीम के राइटइंट () फ़ंक्शन को आउटपुट स्ट्रीम ऑब्जेक्ट 'ओ' के माध्यम से कॉल कर रहे हैं ताकि इसे एक पूर्णांक चर 'डी' पास किया जा सके, यानी इसे फ़ाइल में सहेजने के लिए। लाइन 12 पर, हमने फ़ाइल इनपुट स्ट्रीम 'fs' को जावा के FileInputStream क्लास का उपयोग करके इसे 'new.txt' फ़ाइल पास करके बनाया है, यानी इसमें पहले से ही डेटा है। यह फ़ाइल इनपुट स्ट्रीम ऑब्जेक्ट 'fs' फ़ाइल स्ट्रीम से पढ़ने को सक्षम करने के लिए ObjectInputStream क्लास के नए जेनरेट किए गए ऑब्जेक्ट 'os' को पास कर दिया गया है। जावा के 'System.out' पैकेज से प्रिंट्लन () फ़ंक्शन को new.txt फ़ाइल से डेटा प्रदर्शित करने के लिए ऑब्जेक्ट इनपुट स्ट्रीम ऑब्जेक्ट 'os' के माध्यम से readInt () फ़ंक्शन को कॉल करने के लिए बंद कर दिया गया है। उसके बाद, हम जावा में फ़ाइल हैंडलिंग के 'क्लोज़' फ़ंक्शन का उपयोग करके उनके संबंधित ऑब्जेक्ट 'ओ' और 'ओएस' का उपयोग करके आउटपुट स्ट्रीम और इनपुट स्ट्रीम को बंद कर रहे हैं। धाराओं को बंद करने के लिए यह एक आवश्यक कदम है ताकि कोई अन्य उपयोगकर्ता किसी फ़ाइल से डेटा इनपुट या आउटपुट न कर सके। कैच () स्टेटमेंट के भीतर, हम एक त्रुटि प्राप्त करने के लिए गेटस्टैकट्रेस () फ़ंक्शन का उपयोग कर रहे हैं और इसे अपवाद चर 'ई' के माध्यम से स्क्रीन पर प्रदर्शित करते हैं। यह प्रोग्राम शेल पर निष्पादन के लिए तैयार है।





हमने अपनी जावा कोड फ़ाइल को उसके निष्पादन से पहले सहेजा था और 'test.java' फ़ाइल को निष्पादित करने के लिए जावा कीवर्ड निर्देश का उपयोग किया था। यह बदले में कुछ नहीं देता है। इसके अलावा, 'बिल्ली' निर्देश का उपयोग करके शेल पर एक टेक्स्ट फ़ाइल 'new.txt' के डेटा को प्रदर्शित करने से कचरा मूल्य प्रदर्शित होता है। ऐसा इसलिए है, क्योंकि अधिकांश समय, जावा निष्पादक फ़ाइल से पूर्णांक मान को पढ़ने में असमर्थ होता है। लेकिन सबसे अधिक संभावना है, यह सटीक पूर्णांक मान प्रदर्शित करेगा।



new.txt फ़ाइल को मैन्युअल रूप से खोलकर जाँच करने पर, हमने देखा है कि फ़ाइल में मान का एक यूनिकोड प्रारूप दिखाया गया है।

यदि आप फ़ाइल स्ट्रीम से पूर्णांक मान प्रदर्शित करने में असमर्थ हैं, तो आप ऑब्जेक्ट 'ओ' के माध्यम से फ़ाइल स्ट्रीम में 'डी' मान लिखने के लिए राइटइन्ट () फ़ंक्शन के बजाय जावा प्रोग्राम में राइटऑब्जेक्ट () फ़ंक्शन का उपयोग कर सकते हैं। जैसा दिखाया गया है। इसके साथ ही, आपको फ़ाइल इनपुट स्ट्रीम से डेटा प्रदर्शित करने के लिए readInt () फ़ंक्शन के बजाय 'readObject ()' फ़ंक्शन को बंद करने की आवश्यकता है।

इस कोड को अपडेट करने से निष्पादन पर पूर्णांक मान प्रदर्शित होगा।

उदाहरण 02

स्ट्रिंग प्रकार मान के लिए ऑब्जेक्ट इनपुट स्ट्रीम को बंद करने के लिए जावा प्रोग्रामिंग का एक और मूल्य है। इस प्रकार, हमने जावा लाइब्रेरी के 'io' पैकेज से जावा के समान FileInputStream, FileOutputStream, ObjectInputStream, और ObjectOutputStream कक्षाओं के आयात के साथ यह उदाहरण कोड शुरू किया है। इस कोड को निष्पादित करना शुरू करने के लिए मुख्य वर्ग का मुख्य () फ़ंक्शन होता है। एक स्ट्रिंग वेरिएबल 'd2' को लंबे स्ट्रिंग मान के साथ प्रारंभ किया जाता है।

त्रुटि से बचने और इस जावा कोड के सुचारू निष्पादन के लिए उसी ट्राइ-कैच स्टेटमेंट को रद्द कर दिया गया है। फ़ाइल आउटपुट स्ट्रीम के लिए ऑब्जेक्ट 'f' FileOutputStream क्लास के माध्यम से 'new.txt' को एक तर्क के रूप में लेकर बनाया गया है। फ़ाइल आउटपुट स्ट्रीम ऑब्जेक्ट 'एफ' को आउटपुट स्ट्रीम ऑब्जेक्ट 'ओ' को पास कर दिया गया है जिसे ऑब्जेक्टऑटपुटस्ट्रीम क्लास के उपयोग से बनाया गया है। अब, आउटपुट स्ट्रीम 'ओ' इसे 'new.txt' फ़ाइल में लिखे जाने के लिए एक स्ट्रिंग वेरिएबल 'डी' पास करके राइटऑब्जेक्ट () फ़ंक्शन को कॉल कर रहा है।

फिर, FileInputStream क्लास का उपयोग करके एक फ़ाइल इनपुट स्ट्रीम 'fs' बनाया, इसे एक फ़ाइल नाम 'new.txt' पास करके, यानी इससे डेटा पढ़ने के लिए। अब, ObjectInputStream क्लास ऑब्जेक्ट 'os' फ़ाइल इनपुट स्ट्रीम ऑब्जेक्ट 'fs' का उपयोग 'System.out' वर्ग के 'println' निष्पादन विवरण में जावा के readObject () फ़ंक्शन का उपयोग करके डेटा को पढ़ने के लिए करेगा। फिर, हम 'क्लोज़' फ़ंक्शन को कॉल करके इनपुट और आउटपुट स्ट्रीम को बंद कर देते हैं, और कैच स्टेटमेंट का उपयोग किसी भी अपवाद को प्राप्त करने के लिए किया जाता है जो कि प्रयास भाग में हुआ हो और इस प्रोग्राम के निष्पादन के अचानक बंद होने से बचा जाए।

इस जावा कोड फ़ाइल और टेक्स्ट फ़ाइल के निष्पादन ने कंसोल पर स्ट्रिंग मान प्रदर्शित किया।

निष्कर्ष

ऑब्जेक्टइनपुटस्ट्रीम क्लास का उपयोग उन पदार्थों को पढ़ने के लिए उपलब्ध एकमात्र तरीका है जो सीरियल करने योग्य या बाहरी प्रोटोकॉल का उपयोग करते हैं। संक्षेप में, हमने फ़ाइल ऑब्जेक्ट इनपुट स्ट्रीम से डेटा पढ़ने के लिए जावा के ऑब्जेक्टइनपुटस्ट्रीम क्लास का उपयोग करने के लिए सभी आवश्यक विवरण शामिल किए हैं। इसके लिए हम यहां दो अलग-अलग जावा कोड उदाहरण कास्ट कर रहे हैं। पहला उदाहरण पूर्णांक प्रकार इनपुट चर मान का उपयोग करता है, जबकि दूसरा उदाहरण स्ट्रिंग चर मान को बंद कर रहा है, अर्थात, इनपुट फ़ाइल स्ट्रीम से पढ़ा गया है।