इस ट्यूटोरियल में, हम उदाहरणों की मदद से Java ObjectOutputStream और इसके तरीकों के बारे में जानेंगे।
पैकेज की ObjectInputStream
कक्षा का java.io
उपयोग उन वस्तुओं को पढ़ने के लिए किया जा सकता है जो पहले से लिखे गए थे ObjectOutputStream
।
यह InputStream
अमूर्त वर्ग का विस्तार करता है ।
ObjectInputStream
कक्षा के बारे में जानने से पहले , सुनिश्चित करें कि आप ObjectOutputStream क्लास के बारे में जानते हैं।
ObjectInputStream का कार्य करना
ObjectInputStream
मुख्य रूप से द्वारा लिखित डेटा पढ़ने के लिए प्रयोग किया जाता है ObjectOutputStream
।
मूल रूप से, ObjectOutputStream
जावा वस्तुओं को संगत धाराओं में परिवर्तित करता है। इसे क्रमबद्धता के रूप में जाना जाता है। उन परिवर्तित धाराओं को फाइलों में संग्रहीत किया जा सकता है या नेटवर्क के माध्यम से स्थानांतरित किया जा सकता है।
अब, अगर हमें उन वस्तुओं को पढ़ने की आवश्यकता है, तो हम उन वस्तुओं का उपयोग ObjectInputStream
करेंगे जो धाराओं को संबंधित वस्तुओं में बदल देंगे। इसे डिसरियलाइजेशन के रूप में जाना जाता है।
एक ObjectInputStream बनाएँ
ऑब्जेक्ट इनपुट स्ट्रीम बनाने के लिए, हमें java.io.ObjectInputStream
पहले पैकेज को आयात करना होगा । एक बार जब हम पैकेज आयात करते हैं, तो यहां बताया गया है कि हम एक इनपुट स्ट्रीम कैसे बना सकते हैं।
// Creates a file input stream linked with the specified file FileInputStream fileStream = new FileInputStream(String file); // Creates an object input stream using the file input stream ObjectInputStream objStream = new ObjectInputStream(fileStream);
उपरोक्त उदाहरण में, हमने एक ऑब्जेक्ट इनपुट स्ट्रीम बनाई है जिसका नाम objStream है जो फ़ाइल इनपुट स्ट्रीम के साथ फ़ाइलस्ट्रीम नाम से जुड़ा हुआ है।
अब, objStream
फ़ाइल से ऑब्जेक्ट्स को पढ़ने के लिए इस्तेमाल किया जा सकता है।
ObjectInputStream के तरीके
ObjectInputStream
वर्ग के लिए विभिन्न तरीकों के कार्यान्वयन में पेश प्रदान करता है InputStream
वर्ग।
read () विधि
read()
- इनपुट स्ट्रीम से डेटा की बाइट पढ़ता हैreadBoolean()
- बूलियन रूप में डेटा पढ़ता हैreadChar()
- चरित्र रूप में डेटा पढ़ता हैreadInt()
- पूर्णांक रूप में डेटा पढ़ता हैreadObject()
- इनपुट स्ट्रीम से ऑब्जेक्ट को पढ़ता है
उदाहरण 1: जावा ObjectInputStream
आइए देखें कि हम ObjectInputStream
कक्षा द्वारा लिखित वस्तुओं को पढ़ने के लिए कक्षा का उपयोग कैसे कर सकते हैं ObjectOutputStream
।
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"); ObjectOutputStream output = new ObjectOutputStream(file); // Writing to the file using ObjectOutputStream output.writeInt(data1); output.writeObject(data2); FileInputStream fileStream = new FileInputStream("file.txt"); // Creating an object input stream ObjectInputStream objStream = new ObjectInputStream(fileStream); //Using the readInt() method System.out.println("Integer data :" + objStream.readInt()); // Using the readObject() method System.out.println("String data: " + objStream.readObject()); output.close(); objStream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
आउटपुट
पूर्णांक डेटा: 5 स्ट्रिंग डेटा: यह प्रोग्राम है
उपरोक्त उदाहरण में, हमने फ़ाइल से पूर्णांक डेटा और ऑब्जेक्ट डेटा को पढ़ने के लिए readInt()
और readObject()
विधि का उपयोग किया है ।
यहां, हमने ObjectOutputStream
फ़ाइल में डेटा लिखने के लिए उपयोग किया है । हम तब फ़ाइल का उपयोग करके डेटा को पढ़ते हैं ObjectInputStream
।
उदाहरण 2: जावा ObjectInputStream
आइए एक और व्यावहारिक उदाहरण देखें,
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 dog = new Dog("Tyson", "Labrador"); try ( FileOutputStream file = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream output = new ObjectOutputStream(file); // Writes objects to the output stream output.writeObject(dog); FileInputStream fileStream = new FileInputStream("file.txt"); // Creates an ObjectInputStream ObjectInputStream input = new ObjectInputStream(fileStream); // Reads the objects Dog newDog = (Dog) input.readObject(); System.out.println("Dog Name: " + newDog.name); System.out.println("Dog Breed: " + newDog.breed); output.close(); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
आउटपुट
कुत्ते का नाम: टायसन डॉग ब्रीड: लैब्राडोर
उपरोक्त उदाहरण में, हमने बनाया है
ObjectOutputStream
नामितFileOutputStream
फ़ाइल का उपयोग करके नामांकित आउटपुटObjectInputStream
नामितFileInputStream
फ़ाइलस्ट्रीम का उपयोग करके नामित नाम- डॉग क्लास का एक ऑब्जेक्ट डॉग
यहाँ, हमने ऑब्जेक्ट को फाइल में लिखने के लिए ऑब्जेक्ट आउटपुट स्ट्रीम का उपयोग किया है। और, फ़ाइल से ऑब्जेक्ट को पढ़ने के लिए ऑब्जेक्ट इनपुट स्ट्रीम।
नोट : डॉग क्लास Serializable
इंटरफ़ेस को लागू करता है। इसका कारण यह है कि ObjectOutputStream
केवल उत्पादन धारा के लिए अनुक्रमिक वस्तुओं को लिखता है।
ObjectInputStream के अन्य तरीके
तरीके | वर्णन |
---|---|
available() | इनपुट स्ट्रीम में बाइट्स की उपलब्ध संख्या देता है |
mark() | इनपुट स्ट्रीम में स्थिति को चिह्नित करता है जिसमें डेटा पढ़ा गया है |
reset() | नियंत्रण को उस बिंदु पर इनपुट स्ट्रीम में लौटाता है जहाँ चिह्न सेट किया गया था |
skipBytes() | इनपुट स्ट्रीम से निर्दिष्ट बाइट्स को छोड़ता और छोड़ता है |
close() | ऑब्जेक्ट इनपुट स्ट्रीम बंद कर देता है |
अधिक जानने के लिए, जावा ObjectInputStream (आधिकारिक जावा प्रलेखन) पर जाएँ।