Biểu đồ đối tượng chứa một tập hợp các đối tượng được tự động tuần tự hóa với điều kiện đối tượng chứa tham chiếu cũng được tuần tự hóa. Bất kỳ đối tượng nào được tuần tự hóa và chứa tham chiếu đối tượng, tham chiếu đối tượng sẽ được tuần tự hóa bởi JVM.
Ví dụ
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("Value of i after it is serialized is " + my_obj.s2.s3.i); System.out.println("Value of j after it is serialized is "+my_obj.s2.s3.j); } }
Đầu ra
Value of i after it is serialized is 34 Value of j after it is serialized is 67
Một lớp có tên là ‘One’ kế thừa từ lớp ‘Serializable’. Ở đây, một phiên bản khác của một lớp khác đã được tạo. Lớp tương tự được kế thừa bởi lớp ‘Serializable’. Một lần nữa, một phiên bản khác được tạo trong lớp này.
Một lớp khác kế thừa lớp ‘Serializable’. Ở đây, hai số nguyên được xác định và một lớp khác có tên là ‘Demo_Serialize’ được tạo. Ở đây, chức năng chính được xác định. Một phiên bản của lớp đầu tiên được định nghĩa và một phiên bản của FileOutputStream và ObjectOutputStream được tạo. Các đối tượng được viết bằng các luồng này. Sau đó, các luồng bị đóng. Điều này được thực hiện một lần nữa để tuần tự hóa dữ liệu. Đầu ra có liên quan được hiển thị trên bảng điều khiển.