JAVA序列化和反序列化

1.定义对象

package com;

/**
 * 
 * @author yf
 *
 */
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);
    }
}

2.将对象写入内存

package com;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class SerializeDemo {

    public static void main(String[] args) {
        //将要写入的对象
        Employee e=new Employee();
        e.name="tom";
        e.address="BeiJing";
        e.number=2;
        e.SSN=2;
        
        //文件输出流
        FileOutputStream out=null;
        try {
            out=new FileOutputStream("/tmp.ser");
            //对象输出流
            ObjectOutputStream oout=new ObjectOutputStream(out);
            oout.writeObject(e);
            out.close();
            oout.close();
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        
    }
}

3.将对象输出内存

package com;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;

public class Test01 {

    public static void main(String[] args) {
        
        //文件输入流
        FileInputStream in=null;
        //反序列对象
        Employee emp=null;
        try {
             
            in=new FileInputStream("/tmp.ser");
            //对象流
            ObjectInputStream obj=new ObjectInputStream(in);
            //获取对象 
            emp=(Employee) obj.readObject();
             System.out.println(emp.address);
             System.out.println(emp.name);
             System.out.println(emp.number);
             System.out.println(emp.SSN);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
原文地址:https://www.cnblogs.com/javaweb2/p/6635855.html