परिचय
एक ऑब्जेक्ट ग्राफ में ऑब्जेक्ट्स का एक सेट होता है जो ऑटोमैटिकली सीरियलाइज़ हो जाते हैं बशर्ते कि जिस ऑब्जेक्ट में रेफरेंस होता है वह भी सीरियलाइज़ हो। कोई भी ऑब्जेक्ट जो सीरियलाइज़ होता है और जिसमें ऑब्जेक्ट रेफरेंस होता है, ऑब्जेक्ट रेफरेंस को JVM द्वारा सीरियलाइज़ किया जाएगा।
उदाहरण
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class One implements Serializable{
Two s2 = new Two();
}
class Two implements Serializable{
Three s3 = new Three();
}
class Three implements Serializable{
int i = 34;
int j = 67;
}
public class Demo_Serialize{
public static void main(String args[]) throws Exception{
One s1 = new One();
FileOutputStream my_fos = new FileOutputStream("abc.ser");
ObjectOutputStream my_oos = new ObjectOutputStream(my_fos);
my_oos.writeObject(s1);
my_fos.close();
my_oos.close();
FileInputStream my_fis = new FileInputStream("abc.ser");
ObjectInputStream my_ois = new ObjectInputStream(my_fis);
One my_obj = (One) my_ois.readObject();
my_fis.close();
my_ois.close();
System.out.println("सीरियलाइज़ होने के बाद i का मान है " + my_obj.s2.s3.i);
System.out.println("सीरियलाइज़ होने के बाद j का मान है " + my_obj.s2.s3.j);
}
}आउटपुट
सीरियलाइज़ होने के बाद i का मान है 34
सीरियलाइज़ होने के बाद j का मान है 67'One' नाम की एक क्लास 'Serializable' क्लास से इनहेरिट करती है। यहां, एक अलग क्लास का दूसरा इंस्टेंस बनाया जाता है। उसी क्लास को 'Serializable' क्लास द्वारा इनहेरिट किया जाता है। फिर, इस क्लास के अंदर एक अलग इंस्टेंस बनाया जाता है।
'Serializable' क्लास को इनहेरिट करने वाली एक और क्लास। यहां, दो इंटीजर परिभाषित किए गए हैं, और 'Demo_Serialize' नाम की एक और क्लास बनाई गई है। यहां, मुख्य फ़ंक्शन परिभाषित किया गया है। पहली क्लास का एक इंस्टेंस परिभाषित किया गया है, और FileOutputStream और ObjectOutputStream के इंस्टेंस बनाए गए हैं। ऑब्जेक्ट्स को इन स्ट्रीम्स का उपयोग करके लिखा जाता है। बाद में, स्ट्रीम्स को बंद कर दिया जाता है। डेटा को सीरियलाइज़ करने के लिए इसे एक बार और किया जाता है। प्रासंगिक आउटपुट कंसोल पर प्रदर्शित होता है।