Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะทำให้เป็นอันดับและดีซีเรียลไลซ์วัตถุใน Java ได้อย่างไร?


การทำให้เป็นอนุกรม เป็นกระบวนการเปลี่ยนสถานะของอ็อบเจ็กต์เป็น สตรีมไบต์ , อ็อบเจกต์จะถูกจัดลำดับได้หาก คลาส หรือ ผู้ปกครอง คลาสใช้ Serializable o r อี ต่อภายนอกได้ อินเทอร์เฟซและ ดีซีเรียลไลเซชัน เป็นกระบวนการแปลงวัตถุต่อเนื่องเป็นสำเนาของวัตถุ

ในระหว่างการทำให้เป็นอนุกรม หากเราไม่ต้องการเขียนสถานะของตัวแปรเฉพาะในสตรีมไบต์โดยใช้ ชั่วคราว คำสำคัญ. เมื่อ JVM มาถึงคีย์เวิร์ดชั่วคราว โดยจะไม่สนใจสถานะเดิมของตัวแปรและเก็บค่าเริ่มต้นของประเภทข้อมูลนั้นไว้ เช่น 0 สำหรับ int 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