序列化对象

实现Serialiable 接口才能进行序列化,标注transient和static的变量会被忽略。

import java.io.Serializable;

class Customer implements Serializable {
        private String name;
        private int age;
        public Customer(String name, int age) {
            this.name = name;
            this.age = age;
        }

        public String toString() {
            return "name=" + name + ", age=" + age;
        }
    }

 

import java.io.*;
import java.util.Date;

public class ObjectSaver { 
    /*其中的  D:\\objectFile.obj 表示存放序列化对象的文件*/

    public static void out(Object object,String filename){
        try {
        OutputStream  file= new FileOutputStream(filename);
         //序列化对象
        ObjectOutputStream out = new ObjectOutputStream(file);
//        Customer customer = new Customer("王麻子", 24);    
        out.writeObject(object);    //写入customer对象
        out.close();    
        
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
    public static Object in (String filename){
            //反序列化对象
        Object object = null;
        try {
            ObjectInputStream in = new ObjectInputStream(new FileInputStream(filename));
             object =  in.readObject();    //读取customer对象
            System.out.println(object);
            in.close();
        
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return object;    
    }
    public static void main(String[] args) throws Exception {
        String filename = "src\\objectFile.txt";
        Customer customer = new Customer("王麻子", 24);
              out(customer,filename);
                  in(filename);
        

    }

   另外

posted @ 2017-07-28 10:10  千彧  阅读(113)  评论(0编辑  收藏  举报