• 序列化和反序列化


    ObjectOutputStream 序列化  ObjectInputStream反序列化  
    序列化的类必须继承  Serializable;
    不想序列化的属性可以加上transient
    static 用静态修饰符修饰 不会被序列化  因为序列化是把对象的数据持久化存储  而静态属于类加载的数据 不会被序列化
    package cn.lijun.com;
    
    import java.io.Serializable;
    
    public class Person implements Serializable{
        private String name;
        private int 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 "Person [name=" + name + ", age=" + age + "]";
        }
        public Person(String name, int age) {
            
            this.name = name;
            this.age = age;
        }
    
    }
    
    
    
    
    
    
    
    package cn.liju.demo;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    
    // IO 流的对象   实现对IO流的序列化   和反序列化
    public class Demo1ObjectStream {
          public static void main(String[] args) throws Exception {
            writeObject();
              readObject();
        }
          public static void readObject() throws Exception{
              FileInputStream fos = new FileInputStream("c:\person1.txt");
              //创建反序列化流  readObject()   读对象
              ObjectInputStream ois = new ObjectInputStream(fos);
              Object obj = ois.readObject();
              System.out.println(obj);
              ois.close();
              
          }
          public static void writeObject() throws Exception{
              FileOutputStream fos = new FileOutputStream("c:\person1.txt");
              //  创建写出对象的序列化流的对象  构造方法传递字节输出流
              ObjectOutputStream oos = new ObjectOutputStream(fos);
              Demo1Person p = new Demo1Person("朱东洋", 20);
              oos.writeObject(p);
              oos.close();
          }
    }
  • 相关阅读:
    NPM 与 left-pad 事件:我们是不是早已忘记该如何好好地编程?
    Groovy split竖杆注意
    使用Flask-Migrate进行管理数据库升级
    Fabric自动部署太方便了
    程序员的复仇:11行代码如何让Node.js社区鸡飞狗跳
    grails 私有库相关设置
    A successful Git branching model
    String to Date 多种格式转换
    C#搭建CEF(CEFGLUE) 环境。
    使用Win PE修改其他硬盘中的系统注册表
  • 原文地址:https://www.cnblogs.com/qurui1998/p/10609864.html
Copyright © 2020-2023  润新知