जावा ObjectOutputStream (उदाहरण के साथ)

इस ट्यूटोरियल में, हम उदाहरणों की मदद से Java ObjectOutputStream और इसके तरीकों के बारे में जानेंगे।

पैकेज की ObjectOutputStreamकक्षा का java.ioउपयोग उन वस्तुओं को लिखने के लिए किया जा सकता है जिन्हें पढ़ा जा सकता है ObjectInputStream

यह OutputStreamअमूर्त वर्ग का विस्तार करता है ।

ObjectOutputStream का कार्य करना

मूल रूप से, ObjectOutputStreamजावा ऑब्जेक्ट को क्लास नाम और ऑब्जेक्ट मान का उपयोग करते हुए एन्कोड करता है। और, इसलिए इसी धारा को उत्पन्न करता है। इस प्रक्रिया को क्रमबद्धता के रूप में जाना जाता है।

उन परिवर्तित धाराओं को फाइलों में संग्रहीत किया जा सकता है और उन्हें नेटवर्क में स्थानांतरित किया जा सकता है।

नोट : ObjectOutputStreamवर्ग केवल उन वस्तुओं को लिखता है जो Serializableइंटरफ़ेस को लागू करते हैं । इसका कारण यह है कि वस्तुओं को धारा में लिखते समय क्रमबद्ध किया जाना चाहिए

एक ObjectOutputStream बनाएं

ऑब्जेक्ट आउटपुट स्ट्रीम बनाने के लिए, हमें java.io.ObjectOutputStreamपहले पैकेज को आयात करना होगा । एक बार जब हम पैकेज आयात करते हैं, तो यहां बताया गया है कि हम आउटपुट स्ट्रीम कैसे बना सकते हैं।

 // Creates a FileOutputStream where objects from ObjectOutputStream are written FileOutputStream fileStream = new FileOutputStream(String file); // Creates the ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream); 

उपरोक्त उदाहरण में, हमने एक ऑब्जेक्ट आउटपुट स्ट्रीम बनाया है जिसका नाम objStream है जो कि फाइलस्ट्रीम नामक फाइल आउटपुट स्ट्रीम से जुड़ा हुआ है।

ObjectOutputStream के तरीके

ObjectOutputStreamवर्ग के लिए विभिन्न तरीकों के लिए कार्यान्वयन में पेश प्रदान करता है OutputStreamवर्ग।

लिखना () विधि

  • write() - आउटपुट स्ट्रीम में डेटा का बाइट लिखता है
  • writeBoolean() - बूलियन रूप में डेटा लिखता है
  • writeChar() - चरित्र रूप में डेटा लिखता है
  • writeInt() - पूर्णांक रूप में डेटा लिखता है
  • writeObject() - आउटपुट स्ट्रीम पर ऑब्जेक्ट लिखता है

उदाहरण 1: Java ObjectOutputStream

आइए देखें कि हम ObjectOutputStreamकिसी फाइल में ऑब्जेक्ट्स को स्टोर करने के लिए और ObjectInputStreamफाइलों से उन ऑब्जेक्ट्स को पढ़ने के लिए कैसे उपयोग कर सकते हैं

 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; class Main ( public static void main(String() args) ( int data1 = 5; String data2 = "This is programiz"; try ( FileOutputStream file = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream output = new ObjectOutputStream(file); // writes objects to output stream output.writeInt(data1); output.writeObject(data2); // Reads data using the ObjectInputStream FileInputStream fileStream = new FileInputStream("file.txt"); ObjectInputStream objStream = new ObjectInputStream(fileStream); System.out.println("Integer data :" + objStream.readInt()); System.out.println("String data: " + objStream.readObject()); output.close(); objStream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

आउटपुट

 पूर्णांक डेटा: 5 स्ट्रिंग डेटा: यह प्रोग्राम है 

उपरोक्त उदाहरण में, हमने फ़ाइलों से पूर्णांक डेटा और ऑब्जेक्ट डेटा को पढ़ने के लिए readInt()विधि और readObject()विधि का उपयोग किया है ।

यहां, हमने ObjectOutputStreamफ़ाइल में डेटा लिखने के लिए उपयोग किया है । हम तब फ़ाइल का उपयोग करके डेटा को पढ़ते हैं ObjectInputStream

उदाहरण 2: Java ObjectOutputStream

एक और उदाहरण लेते हैं,

 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; class Dog implements Serializable ( String name; String breed; public Dog(String name, String breed) ( this.name = name; this.breed = breed; ) ) class Main ( public static void main(String() args) ( // Creates an object of Dog class Dog dog1 = new Dog("Tyson", "Labrador"); try ( FileOutputStream fileOut = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream objOut = new ObjectOutputStream(fileOut); // Writes objects to the output stream objOut.writeObject(dog1); // Reads the object FileInputStream fileIn = new FileInputStream("file.txt"); ObjectInputStream objIn = new ObjectInputStream(fileIn); // Reads the objects Dog newDog = (Dog) objIn.readObject(); System.out.println("Dog Name: " + newDog.name); System.out.println("Dog Breed: " + newDog.breed); objOut.close(); objIn.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

आउटपुट

 कुत्ते का नाम: टायसन डॉग ब्रीड: लैब्राडोर 

उपरोक्त उदाहरण में, हमने बनाया है

  • ObjectOutputStreamनामित fileOut का उपयोग करके FileOutputStreamनामित नाम
  • ObjectInputStreamनामित फ़ाइल नाम का उपयोग करते हुए FileInputStreamobjIn।
  • डॉग क्लास का एक ऑब्जेक्ट dog1।

यहाँ, हमने ऑब्जेक्ट को फाइल में लिखने के लिए ऑब्जेक्ट आउटपुट स्ट्रीम का उपयोग किया है। और, फ़ाइल से ऑब्जेक्ट को पढ़ने के लिए ऑब्जेक्ट इनपुट स्ट्रीम।

नोट : डॉग क्लास Serializableइंटरफ़ेस को लागू करता है। ऐसा इसलिए है क्योंकि ObjectOutputStreamकेवल उन वस्तुओं को लिखते हैं जिन्हें आउटपुट स्ट्रीम में क्रमबद्ध किया जा सकता है।

ObjectOutputStream के अन्य तरीके

तरीके वर्णन
flush() आउटपुट स्ट्रीम से सभी डेटा को साफ़ करता है
drain() सभी बफ़र किए गए डेटा को आउटपुट स्ट्रीम में रखता है
close() आउटपुट स्ट्रीम बंद कर देता है

अधिक जानने के लिए, जावा ObjectOutputStream (आधिकारिक जावा प्रलेखन) पर जाएँ।

दिलचस्प लेख...