zoukankan      html  css  js  c++  java
  • java-IO处理类的序列化与反序列化

    package TestIo;
    
    import java.io.*;
    
    /**
     * 序列化
     *
     *
     * 对象序列化
     *
     * 一  创建对象 需要说明,想序列化的对象一定要是实现Serivalizable接口
     *
     * 二 将对象转为序列化对象
     *
     * 三 然后用这个对象写对象或者是读对角
     *
     * 四 如果写的话,则要flush 或者是close
     *
     *
     */
    public class Demo6 {
        public static void main(String[] args) {
    //        TestSerializable testSerializable = new TestSerializable();
            FanSerive fanSerive = new FanSerive();
        }
    }
    
    /**
     * 序列化的类一定要实现Serializable
     */
    class Person implements Serializable {
        // 添加序列化ID,它决定着是否能够成功反序列化!
        private static final long serialVersionUID = 1L;
        int age;
        boolean isMan;
        String name;
    
        public Person(int age, boolean isMan, String name) {
            super();
            this.age = age;
            this.isMan = isMan;
            this.name = name;
        }
    
        @Override
        public String toString() {
            return "Person [age=" + age + ", isMan=" + isMan + ", name=" + name + "]";
        }
    }
    
    /**
     * 执行序列化
     */
    class TestSerializable {
        public static void main(String[] args) throws IOException, ClassNotFoundException {
    
            FileOutputStream fos = null;
            FileInputStream fis = null;
            ObjectOutputStream oos = null;
            ObjectInputStream ois = null;
            // 通过ObjectOutputStream将Person对象的数据写入到文件中,即序列化。
            Person person = new Person(18, true, "监控中心");
            // 声明写出对象
            fos = new FileOutputStream("d:/person.txt");
            // 将文件对象序列化
            oos = new ObjectOutputStream(fos);
            // 序列化的对象写内容
            oos.writeObject(person);
            oos.flush();
            oos.close();
        }
    }
    
    /**
     * 反序列化
     */
    class FanSerive {
        public static void main(String[] args) throws IOException, ClassNotFoundException {
            System.out.println("执行读取文件对象的内容");
            FileInputStream fileInputStream = new FileInputStream("d:/person.txt");
            ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
            Person person = (Person) objectInputStream.readObject();
            System.out.println(person);
        }
    }
    

      

  • 相关阅读:
    Spring Boot (20) 拦截器
    Spring Boot (19) servlet、filter、listener
    Spring Boot (18) @Async异步
    Spring Boot (17) 发送邮件
    Spring Boot (16) logback和access日志
    Spring Boot (15) pom.xml设置
    Spring Boot (14) 数据源配置原理
    Spring Boot (13) druid监控
    Spring boot (12) tomcat jdbc连接池
    Spring Boot (11) mybatis 关联映射
  • 原文地址:https://www.cnblogs.com/leigepython/p/9996405.html
Copyright © 2011-2022 走看看