java序列化与反序列化

来源:互联网 发布:破解版office for mac 编辑:程序博客网 时间:2024/06/05 19:39

一、定义Employee类

public class Employee implements java.io.Serializable {    public String name;    public String address;    public transient int SSN;    public int number;    public void mailCheck() {        System.out.println("Mailing a check to " + name + " " + address);    }}

二、创建SerializeDemo类:序列化

public class SerializeDemo {    public static void main(String[] args) {        // TODO Auto-generated method stub        Employee e = new Employee();        e.name = "Reyan Ali";        e.address = "Phokka Kuan, Ambehta Peer";        e.SSN = 11122333;        e.number = 101;        try {            FileOutputStream fileOut = new FileOutputStream("employee.txt");            ObjectOutputStream out = new ObjectOutputStream(fileOut);            out.writeObject(e);            out.close();            fileOut.close();            System.out.printf("Serialized data is saved in /tmp/employee.ser");        } catch (IOException i) {            i.printStackTrace();        }    }}

三、创建DeserializeDemo类:反序列化

public class DeserializeDemo {    public static void main(String[] args) {        // TODO Auto-generated method stub        Employee e = null;        try {            FileInputStream fileIn = new FileInputStream("employee.ser");            ObjectInputStream in = new ObjectInputStream(fileIn);            e = (Employee) in.readObject();            in.close();            fileIn.close();        } catch (IOException i) {            i.printStackTrace();            return;        } catch (ClassNotFoundException c) {            System.out.println("Employee class not found");            c.printStackTrace();            return;        }        System.out.println("Deserialized Employee...");        System.out.println("Name: " + e.name);        System.out.println("Address: " + e.address);        System.out.println("SSN: " + e.SSN);        System.out.println("Number: " + e.number);    }}
原创粉丝点击