zoukankan      html  css  js  c++  java
  • 序列化和反序列化

    一、定义:什么是序列化?什么是反序列化?
             序列化:把java对象转化为字节序列的过程
             反序列化:把字节序列恢复为java对象的过程
    二、作用
            (1)把对象的字节序列永远保存在磁盘上。(持久化对象)
            (2)可以将java对象以字节序列的方式在网络传输。(网络传输对象)
    三、如何实现
             对象必须实现Serializable或Externalizable接口中的一个
     
             如果对序列化的需求非常简单,没有对序列化过程控制的需求,可以简单实现Serializable接口即可

       代码:创建一个类,实现Serializable接口

             import java.io.Serializable;
             public class Person implements Serializable{

                    // 阻止成员变量序列化  transient 例:private transient int age;  age变不能被序列化

                  private String name;
                  private int age;
                  //构造有参函数
                  public Person(String name,int age){
                       this.name=name;
                       this.age=age;
                }
                  public String getName() {
            return name;
            }
              public void setName(String name) {
            this.name = name;
            }
              public int getAge() {
            return age;
            }
              public void setAge(int age) {
            this.age = age;
            }
                  
              @Override
              public String toString() {
            return "Demo1Person [name=" + name + ", age=" + age + "]";
                }
             }
            //对对象进行序列化
           public class Demo1ObjectStream{
               public static void main(String[] args) throws Exception{
                  //创建字节输出流对象,并绑定目的地
                  FileOutputStream fos=new FileOutputStream("d:\Object.txt");
                  //创建写出对象的序列化流的对象 构造方法传递字节输出流
                  ObjectOutputStream oos=new ObjectOutputStream(fos);
                  Person p=new Person("徐凤年",25);
                  //writeObject() 写
                  oos.writeObject(p);
                  oos.close()
               }    
            }
            //反序列化 将文件中的序列化字符转化为对象
          public class Demo2ObjectStream{
              public static void main(String[] args) throws Exception{
                 FileInputStream fis=new FileInputStream("d:\Object.txt");
                 //创建反序列化流     readObject()  读对象
                 ObjectInputStream ois=new ObjectInputStream(fis);
                 Object ob=ois.readObject();
                 System.out.println(ob);
                 ois.close();
             }
          }


































  • 相关阅读:
    从国内流程管理软件市场份额看中国BPM行业发展
    为什么流程是成功企业的关键?
    港真,到底应该选择OA还是BPM?
    hello world
    i40e网卡驱动遇到的一个问题
    suse 11 sp3编译报错问题
    linux scsi相关的一些学习笔记
    linux tcp 在timewait 状态下的报文处理
    趋势科技 redirfs模块的一个小问题
    linux 3.10 一个扇区异常可能引发的hung
  • 原文地址:https://www.cnblogs.com/fbbg/p/10623554.html
Copyright © 2011-2022 走看看