Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 객체를 직렬화 및 역직렬화하는 방법은 무엇입니까?


직렬화 개체의 상태를 바이트 스트림으로 변경하는 프로세스입니다. , 객체의 클래스 인 경우 직렬화 가능하다고 합니다. 또는 부모 클래스는 직렬화 가능 r E 외부화 가능 인터페이스 및 역직렬화 직렬화된 개체를 개체의 복사본으로 다시 변환하는 프로세스입니다.

직렬화하는 동안 과도 예어. JVM 일시적인 키워드에 도달하면 변수의 원래 상태를 무시하고 해당 데이터 유형의 기본값(예:int의 경우 0,)을 저장합니다. 바이트의 경우 0 , 플로트의 경우 0.0 등 A 직렬화 개체의 FileOutputStream 을 통해 수행할 수 있습니다. 및 ObjectOutputStream 수업.

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);
   }
}

출력

a = 1
b = 2
c = 0