欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java序列化和java反序列化示例

程序员文章站 2024-02-15 19:51:53
序列化一般应用与以下场景之中:1.永久性保存对象,把对象通过序列化字节流保存到本地文件中;2.通过序列化在网络中传输对象3.通过序列化在进程间传递对象复制代码 代码如下:i...

序列化一般应用与以下场景之中:

1.永久性保存对象,把对象通过序列化字节流保存到本地文件中;
2.通过序列化在网络中传输对象
3.通过序列化在进程间传递对象

复制代码 代码如下:

import java.io.serializable;
import java.io.fileoutputstream;
import java.io.ioexception;
import java.io.objectoutputstream;

public class javaserializable_fun {

/**
   * java.io.serializable 接口,类只有实现serializable借口才能被序列化
   * java.io.externalizable接口,利用java的序列化和反序列化工具,很多存储和恢复对象的工作都可以自动完成。
   * java.io.objectoutput接口,序列化传出, 继承了dataoutput接口并定义了一些方法,它支持对象序列化;
   *   重点说明:在该类中,writeobject()方法是最重要的方法,用于对象序列化,如果对象包含其他的对象引用,则writeobject()方法地柜序列化这些对象;
   * java.io.objectoutputstream类,负责向流中写入对象,构造方法:objectoutputstream(outputstream out);
   * java.io.objectinput接口,序列化传入。继承了datainput接口并定义了一些方法,它支持对象序列化;
   * objectinputstream类, 负责向从流中读取对象,构造方法:objectinputstream(inputstream out);
   ***/

public static void main(string[] args) {

    try
  {
   //构造fileoutputstream对象
   fileoutputstream f=new fileoutputstream("c:a.txt");

   //构造objectoutputstream对象
   objectoutputstream out=new objectoutputstream(f);

   customer customer=new customer("bj",50);

   //使用objectoutputstream对象的writeobject()方法进行序列化
   out.writeobject(customer);

   //关闭objectoutputstream对象
   out.close();

   //关闭fileoutputstream对象
     f.close();
     system.out.println("序列化完毕!");
  }
  catch(ioexception e)
  {
   e.getstacktrace();
  }

}

}

class customer implements serializable
{
 private static final long serialversionuid =1l;

 private string name;
 private int age;

 public string getname()
 {
  return name;
 }

 public int getage()
 {
  return age;
 }

 public customer(string name,int age)
 {
  this.name=name;
  this.age=age;
 }

 public string tostring()
 {
  return "name="+ name +",age="+age;
 }
}