• 序列化和反序列化


    一、定义:什么是序列化?什么是反序列化?
             序列化:把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();
             }
          }


































  • 相关阅读:
    【核心算法1】双指针问题
    关于博客园主题
    正交工具allpairs使用
    postman设置变量
    WebDriver驱动下载地址
    MySQL语法基础
    异或
    测试——pytest库上手
    and 和 or 的语句运算
    爬虫——Scrapy中选择器的基本使用(转)
  • 原文地址:https://www.cnblogs.com/fbbg/p/10623554.html
Copyright © 2020-2023  润新知