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

java初学者实践教程23-序列化

     上节课我们讲了4种流,只有序列化的这个没有细讲。它是传对象的,如果想把一个对象保存在硬盘上,就只能使用这种方式。它的关键是将它的状态以一种串行格式表示出来,以便以后读该对象时能够把它读出来。对象的串行化对于大多数java应用是非常重要的:

u       Java的远程方法调用(RMI),通过socket通信。这个东西我们会在后面的教程讲到。

u       对象永久化,就是把对象存硬盘上,或外存设备上。以便以后使用。

它的基础类是ObjectInputStreamObjectOutputStream,这两个流称为对象流

      实践:

 //这是一个保存对象的例子

import java.io.*;

import java.util.Date;

public class SerializeDate {

  SerializeDate() {

    Date d = new Date ();

    try {

      FileOutputStream f =

          new FileOutputStream ("date.ser"); //输出到date.ser这个文件中

      ObjectOutputStream s =

          new ObjectOutputStream (f);

      s.writeObject (d); //写对象,将对象d写成是date.ser文件

      s.close ();        //关闭流

    } catch (IOException e) {

      e.printStackTrace ();

    } }

  public static void main (String args[]) {

    new SerializeDate();

  }} 

如图所示23-1,执行之后

23-1

 

DOS窗口中没有看到结果,但是在这个文件夹内发现了一个date.ser的文件。它就是对象d写入磁盘的状态。如图23-2

23-2

那么保存了之后怎么在把这个date.ser文件读出来呢?

实践:

import java.io.*;

import java.util.Date;

public class UnSerializeDate {

  UnSerializeDate () {

    Date d = null;

    try { //使用FileInputStream

      FileInputStream f =

          new FileInputStream ("date.ser");

      ObjectInputStream s =

          new ObjectInputStream (f);

      d = (Date) s.readObject ();//读对象

      s.close ();

    } catch (Exception e) {

      e.printStackTrace (); }

    System.out.println(

      "date.ser文件,读取Date对象 ");

    System.out.println("日期是: "+d);

  }

  public static void main (String args[]) {

    new UnSerializeDate();

  }} 

如图23-3所示读出时间

23-3

上述源码打包下载

对于一个可以被序列化的类,它会实现一个Serializable的接口。那是个空接口,什么方法也没有只是一个标志而已。这在J2EE,(现在叫java EE)中,使用EJB时是非常重要的。如果大家以后能继续学习学到EJB的时候,再具体了解。

 

java初学者实践教程24-反射

 

查看原文>>

【责编:Peng】

中国IT教育

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

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