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

इस ट्यूटोरियल में, हम उदाहरणों की मदद से 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 (आधिकारिक जावा प्रलेखन) पर जाएँ।

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