快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

J2SE中的序列化的熟悉

 java中处处体现着简朴的程序设计风格,序列化作为最常用的功能之一,在java中的设计尤为“简朴”。在ObjectInputStream 和ObjectOutputStream的帮助下,我们可以轻松的实现序列化。

  只要我们的class 实现了java.io.Serializable接口,就可以利用ObjectOutputStream的writeObject()方式将一个对象序列化;利用ObjectInputStream的readObject()方式,可以返回读出的object对象。Serializable接口不需要我们实现任何方式。

  以下是一个例子,它能给我们一个感性的熟悉:

  Serial实现了就java.io.Serializable接口,是需要序列化的类。我们首先构造一个Serial的对象serial1然后将其保存(序列化)在一个文件中,而后再将其读出(反序列化),并打印其内容。

    package Stream;

    /**

    * @author favo yang

    */

    import java.io.*;

    public class Serial implements Serializable {

    int company_id;

    String company_addr;

    boolean company_flag;

    public Serial(){}//不同于c++,没有也可以

    public Serial(int company_id,String company_addr,boolean company_flag) {

    this.company_id=company_id;

    this.company_addr=company_addr;

    this.company_flag=company_flag;

    }

  public static void main(String[] args) {

    Serial serial1 = new Serial(752,"dayer street #5 building 02-287",false);//构造一个新的对象

    FileInputStream in=null;

    FileOutputStream out=null;

    ObjectInputStream oin=null;

    ObjectOutputStream oout=null;

  try {

     out = new FileOutputStream("5.txt");

     oout = new ObjectOutputStream(out);

     serial1.serialize(oout);//序列化

     oout.close();

     oout=null;

   in = new FileInputStream("5.txt");

     oin = new ObjectInputStream(in);

     Serial serial2 = Serial.deserialize(oin);//反序列化

     System.out.println(serial2);//打印结果

    } catch (Exception ex){

     ex.printStackTrace();

    } finally{

     try {

      if (in != null) {

       in.close();

      }

      if (oin != null) {

       oin.close();

      }

      if (out != null) {

       out.close();

      }

      if (oout != null) {

       oout.close();

      }

     } catch (IOException ex1) {

      ex1.printStackTrace();

     }

    }

    }

  /**

    * deserialize

    */

  public static Serial deserialize(ObjectInputStream oin) throws Exception{

    Serial s=(Serial)oin.readObject();

    return s;

    }

  public String toString() {

    return "DATA: "+company_id+" "+company_addr+" "+company_flag;

    }

  /**

    * serialize

    */

  public void serialize(ObjectOutputStream oout) throws Exception{

    oout.writeObject(this);

    }

    }

  运行结果:

  DATA: 752 dayer street #5 building 02-287 false

    

    准确打印了结果。
返回类别: 教程
上一教程: 取代JSP的新技术-TAPESTRY
下一教程: JSP常见错误

您可以阅读与"J2SE中的序列化的熟悉"相关的教程:
· 关于JAVA中的对象序列化
· JAVA对象序列化(整理篇)
· JAVA对象序列化保存为XML文件的工具类
· java对象序列化学习笔记
· 学习笔记-标签使用(J2SE5.0)中的元数据
    微笑服务 优质保证 索取样品