实现Externalizable : 对象外部序列化 « 文件 « Java 教程

En
Java 教程
1. 语言基础
2. 数据类型
3. 操作符
4. 流程控制
5. 类定义
6. 开发相关
7. 反射
8. 正则表达式
9. 集合
10. 线
11. 文件
12. 泛型
13. 本土化
14. Swing
15. Swing事件
16. 二维图形
17. SWT
18. SWT 二维图形
19. 网络
20. 数据库
21. Hibernate
22. JPA
23. JSP
24. JSTL
25. Servlet
26. Web服务SOA
27. EJB3
28. Spring
29. PDF
30. 电子邮件
31. 基于J2ME
32. J2EE应用
33. XML
34. 设计模式
35. 日志
36. 安全
37. Apache工具
38. 蚂蚁编译
39. JUnit单元测试
Java
Java 教程 » 文件 » 对象外部序列化 
11. 37. 2. 实现Externalizable
import java.io.Externalizable;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;

public class MainClass {

  public static void main(String[] argsthrows IOException, ClassNotFoundException {
    System.out.println("Constructing objects:");
    MyBean myBean = new MyBean("A String "47);
    System.out.println(myBean);
    ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream("MyBean.out"));
    System.out.println("Saving object:");
    o.writeObject(myBean);
    o.close();


    ObjectInputStream in = new ObjectInputStream(new FileInputStream("MyBean.out"));
    System.out.println("Recovering:");
    myBean = (MyBeanin.readObject();
    System.out.println(myBean);
  }
}

class MyBean implements Externalizable {
  private int i;

  private String s; // No initialization

  public MyBean() {
    System.out.println("MyBean Constructor");
    // s, i not initialized
  }

  public MyBean(String x, int a) {
    System.out.println("MyBean(String x, int a)");
    s = x;
    i = a;
    // s & i initialized only in nondefault constructor.
  }

  public String toString() {
    return s + i;
  }

  public void writeExternal(ObjectOutput outthrows IOException {
    System.out.println("MyBean.writeExternal");
    out.writeObject(s);
    out.writeInt(i);
  }

  public void readExternal(ObjectInput inthrows IOException, ClassNotFoundException {
    System.out.println("MyBean.readExternal");
    s = (Stringin.readObject();
    i = in.readInt();
  }

}

/**/
Constructing objects:
MyBean(String x, int a)
A String 47
Saving object:
MyBean.writeExternal
Recovering:
MyBean Constructor
MyBean.readExternal
A String 47
11. 37. 对象外部序列化
11. 37. 1. 简单的使用Externalizable
11. 37. 2. 实现Externalizable
11. 37. 3. 重建一个externalizable对象
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.