一般情況下在網絡傳輸對象或者把不活動的對象保存保存到本地時才做序列化操作,以減少服務器中內存的占用。做序列化的對象必須實現序列化接口。
1.在要序列化的類中必須實現序化接口
import java.io.Serializable;
public class User implements Serializable { //給定一個序列化版本,擁有相同的版本才能反序列化,增加或減少字段也不會影響反序列化,因為他們的版本號是固定的 PRivate static final long serialVersionUID = 1L; transient String passWord;//瞬時字段不寫到反序列化中去 private String name; private int age; public User(String name, int age, String password) { this.name = name; this.age = age; this.password = password; } @Override public String toString() { return "User [name=" + name + ", age=" + age + ",password=" + password + "]"; }}
2.測試類的編寫
public class MyTest { public static void main(String[] args) throws Exception { File f = new File("g:/a.text"); //做序列操作,把對象寫到本地文件或者服務器中去,減少服務器中的內存的占用 writeObject(f); //反序列化操作 readObject(f); } private static void writeObject(File f) throws Exception { User user = new User("張三", 18, "abc"); ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f)); out.writeObject(user); } private static void readObject(File f) throws Exception { ObjectInputStream in = new ObjectInputStream(new FileInputStream(f)); User user = (User) in.readObject(); System.out.println(user); }}
|
新聞熱點
疑難解答