Java序列化和反序列化是一種常見的數據存儲和傳輸方式,它可以將對象轉換為字節流并存儲到文件或通過網絡傳輸。本文將介紹一個簡單的Java序列化和反序列化小項目。
首先創建一個Person類,包含姓名和年齡兩個屬性:
public class Person implements Serializable { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } }
接下來在Main方法中進行序列化和反序列化操作:
import java.io.*; public class Main { public static void main(String[] args) { // 序列化 Person person = new Person("Tom", 20); try { FileOutputStream fos = new FileOutputStream("person.ser"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(person); oos.close(); } catch (IOException e) { e.printStackTrace(); } // 反序列化 try { FileInputStream fis = new FileInputStream("person.ser"); ObjectInputStream ois = new ObjectInputStream(fis); Person person2 = (Person) ois.readObject(); System.out.println(person2.getName() + " " + person2.getAge()); ois.close(); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } } }
將Person對象序列化到文件person.ser中,并通過反序列化操作讀取該文件并打印出對象中的屬性。如果一切順利,輸出的結果應該是:
Tom 20
這個小項目雖然簡單,但是它很好地演示了Java序列化和反序列化的基本用法。我們可以通過這種方式方便地存儲和傳輸對象數據。