इस ट्यूटोरियल में, हम उदाहरणों की मदद से 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
नामित फ़ाइल नाम का उपयोग करते हुएFileInputStream
objIn।- डॉग क्लास का एक ऑब्जेक्ट dog1।
यहाँ, हमने ऑब्जेक्ट को फाइल में लिखने के लिए ऑब्जेक्ट आउटपुट स्ट्रीम का उपयोग किया है। और, फ़ाइल से ऑब्जेक्ट को पढ़ने के लिए ऑब्जेक्ट इनपुट स्ट्रीम।
नोट : डॉग क्लास Serializable
इंटरफ़ेस को लागू करता है। ऐसा इसलिए है क्योंकि ObjectOutputStream
केवल उन वस्तुओं को लिखते हैं जिन्हें आउटपुट स्ट्रीम में क्रमबद्ध किया जा सकता है।
ObjectOutputStream के अन्य तरीके
तरीके | वर्णन |
---|---|
flush() | आउटपुट स्ट्रीम से सभी डेटा को साफ़ करता है |
drain() | सभी बफ़र किए गए डेटा को आउटपुट स्ट्रीम में रखता है |
close() | आउटपुट स्ट्रीम बंद कर देता है |
अधिक जानने के लिए, जावा ObjectOutputStream (आधिकारिक जावा प्रलेखन) पर जाएँ।