首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 新手入门 >> oop面向对象 >> 正文

面向对象-Java对象序列化

下面是一个典型的例子,java.awt.geom包中的Point2D.Double类就是不可序列化的,因为该类没有实现Serializable接口,在我的例子中将把它当作LabeledPoint类中的一个数据字段,并演示如何将其序列化!

import java.io.*;

import java.awt.geom.*;

public class TransientTest

{

public static void main(String[] args)

{

LabeledPoint label = new LabeledPoint("Book", 5.00, 5.00);

try

{

System.out.println(label);//写入前

ObjectOutputStream out = new ObjectOutputStream(new

FileOutputStream("Label.txt"));

out.writeObject(label);

out.close();


System.out.println(label);//写入后


ObjectInputStream in = new ObjectInputStream(new

FileInputStream("Label.txt"));

LabeledPoint label1 = (LabeledPoint)in.readObject();

in.close();

System.out.println(label1);//读出并加1.0后

}

catch (Exception e)

{

e.printStackTrace();

}

}


}

class LabeledPoint implements Serializable

{

public LabeledPoint(String str, double x, double y)

{

label = str;

point = new Point2D.Double(x, y);

}


private void writeObject(ObjectOutputStream out) throws IOException

{

/**

*必须通过调用defaultWriteObject()方法来写入

*对象的描述以及那些可以被序列化的字段

*/

out.defaultWriteObject();

out.writeDouble(point.getX());

out.writeDouble(point.getY());

}


private void readObject(ObjectInputStream in)

throws IOException, ClassNotFoundException

{

/**

*必须调用defaultReadObject()方法

*/

in.defaultReadObject();

double x = in.readDouble() + 1.0;

double y = in.readDouble() + 1.0;

point = new Point2D.Double(x, y);

}


public String toString()

{

return getClass().getName()

+ "[label = "+ label

+ ", point.getX() = "+ point.getX()

+ ", point.getY() = "+ point.getY()

+ "]";

}


private  String label;

transient private Point2D.Double point;

}

上一页  [1] [2] [3] 

【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航