posts - 241,  comments - 116,  trackbacks - 0
1. Overview
  Java中的序列化就是将Java对象的状态转化为字节序列,以便存储和传输的机制,在未来的某个时间,可以通过字节序列重新构造对象。把Java对象转 换为字节序列的过程称为对象的序列化。把字节序列恢复为Java对象的过程称为对象的反序列化。这一切都归功于java.io包下的 ObjectInputStream和ObjectOutputStream这两个类。

2. Serializable
  要想实现序列化,类必须实现Serializable接口,这是一个标记接口,没有定义任何方法。如果一个类实现了Serializable接口,那么一旦这个类发布,“改变这个类的实现”的灵活性将大大降低。以下是一个序列化的小例子:
class Message implements Serializable{

    private static final long serialVersionUID = 1L;
    
    private String id;
    
    private String content;
    
    public Message(String id, String content){
        this.id = id;
        this.content = content;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
    
    public String toString(){
        return "id = " + id + " content = " + content;
    }
}

public class Test{
    
    public static void main(String[] args) {
        serialize();
        deserialize();
    }
    
    private static void serialize(){
        Message message = new Message("1", "serializable test");
        try {
            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("Message"));
            oos.writeObject(message);
            oos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("over");
    }
    
    private static void deserialize(){
        try {商账追收
            ObjectInputStream ois = new ObjectInputStream(new FileInputStream("Message"));
            Message message = (Message)ois.readObject();
            System.out.println(message.toString());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    
}
posted on 2011-06-02 11:38 墙头草 阅读(230) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 
人人游戏网 软件开发网 货运专家