Java 序列化和反序列化涉及以下步驟:將實作了 Serializable 介面的類別寫入流中(序列化)。將物件從流中讀取(反序列化)。
#序列化
Serializable
介面的類別。 ObjectOutputStream
對象,並將其與一個檔案或位元組流關聯。 ObjectOutputStream.writeObject()
方法將物件寫入流中。 範例程式碼:
import java.io.FileOutputStream; import java.io.ObjectOutputStream; public class Employee implements Serializable { private String name; private int age; // 省略getter和setter方法 public static void main(String[] args) { Employee employee = new Employee("John", 30); try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("employee.txt"))) { out.writeObject(employee); } catch (Exception e) { e.printStackTrace(); } } }
反序列化
ObjectInputStream
對象,並將其與一個檔案或位元組流關聯。 ObjectInputStream.readObject()
方法讀取物件。 範例程式碼:
import java.io.FileInputStream; import java.io.ObjectInputStream; public class DeserializeEmployee { public static void main(String[] args) { try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("employee.txt"))) { Employee employee = (Employee) in.readObject(); System.out.println(employee.getName() + ", " + employee.getAge()); } catch (Exception e) { e.printStackTrace(); } } }
注意事項:
Serializable
介面的類別才能進行序列化。 以上是java序列化反序列化的過程是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!