JavaBean的序列化及输入输出流

JavaBean涉及的两个重要类
    JavaBean对象和所有的对象一样,就其本质来说是动态变化的,若想使JavaBean对象在网络移动或把对象保存到永久介质中,必须把对象序列化(Serialization)。对象序列化把对象的特征值按一定的顺序线性化排列。人们经常看到“持久性”一词与“序列化“联系在一起,持久性(Persistence)是指使对象在硬盘上永久保存,对象的持久性是通过对象序列化来实现。反之。由序列化的对象的特征值重新构造该对象叫反序列化。一个对象从一个网络结点传送到另一个结点,对象在发送的结点上需序列化,在接收对象的结点上需反序列化。
    1. Serializable接口
    Java提供了支持对象序列化的类和接口在java.io包中,Serializable接口是访问和运行持久性对象的最快的方式,若一个类对象要成为序列化性对象,该对象类只需实现Serializable接口,就可以了。Serializable接口标识着一个对象是可序列化。在大多数情况下,要使一个类对象序列化,只需要简单的在类声明中加入“implements Serializable”就可以了。例如
        public class abc implements Serializable
         {//……}
    每一个JavaBean都应该是可序列化的,这就意味着,在大多数情况下需实现Serializable接口。下图3-5说明了如何保存对象的标识和其特征值信息。保存的对象是例3-1的JavaBeanExaml类的对象javaBeanExam1。

    2. ObjectInputStream和ObjectOutputStream类
java.io包中提供了几个类,它们实现了对象输入输出接口,如ObjectInputStream和ObjectOutputStream类,下面我们举例说明这两个类如何对持久性对象进行操作的。
    例3-7 利用ObjectOutputStream将例4-1中定义的的JavaBeanExaml类的对象写入到文件去。

    例3-8 将例3-7写入的对象读出来。这是序列化的逆过程。

    最后程序运行,输出的结果是 5 ,这说明读入的对象所保存的特征值,的确在保存前设置的整数值 5。
    java的序列化机制为把对象输入输出带来方便。在上面的例子中,JavaBeanExaml对象不必知道如何将自己写入一个文件中,只需要简单的实现Serializable接口,Java就会将所有的JavaBeanExaml bean的对象特征记录下来。


发布了10 篇原创文章 · 获赞 4 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章