Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để tuần tự hóa và giải mã hóa một đối tượng trong Java?


Tuần tự hóa là một quá trình thay đổi trạng thái của một đối tượng thành một luồng byte , một đối tượng được cho là có thể tuần tự hóa nếu lớp của nó hoặc cha mẹ các lớp triển khai Có thể hóa nối tiếp o r E xternalizable giao diện và Hủy đăng ký là quá trình chuyển đổi đối tượng được tuần tự hóa trở lại thành bản sao của một đối tượng.

Trong quá trình tuần tự hóa, nếu chúng tôi không muốn viết trạng thái của một biến cụ thể trong một luồng byte bằng cách sử dụng tạm thời từ khóa. Khi JVM xuất hiện từ khóa tạm thời, nó bỏ qua trạng thái ban đầu của một biến và lưu trữ giá trị mặc định của kiểu dữ liệu đó, tức là 0 cho int, 0 cho byte , 0.0 cho float , v.v. A Serialization của một đối tượng có thể được thực hiện thông qua FileOutputStream ObjectOutputStream lớp học.

Ví dụ

import java.io.*;
public class SerializationTest implements Serializable {
   int a = 1, b = 2;
   transient int c = 3;
   public static void main(String[] args) throws Exception {
      SerializationTest obj = new SerializationTest();
      // serialization
      FileOutputStream fos = new FileOutputStream("serialization.txt");
      ObjectOutputStream oos = new ObjectOutputStream(fos);
      oos.writeObject(obj);
      // de-serialization
      FileInputStream fis = new FileInputStream("serialization.txt");
      ObjectInputStream ois = new ObjectInputStream(fis);
      SerializationTest test = (SerializationTest)ois.readObject();
      System.out.println("a = " + test.a);
      System.out.println("b = " + test.b);
      System.out.println("c = " + test.c);
   }
}

Đầu ra

a = 1
b = 2
c = 0