• 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);
        }
    }
    

      

  • 相关阅读:
    【ZJOI 2008】 生日聚会
    BZOJ2135 刷题计划(贪心+二分)
    BZOJ2124 等差子序列(树状数组+哈希)
    BZOJ2282 SDOI2011消防/NOIP2007树网的核(二分答案+树形dp)
    BZOJ1304 CQOI2009叶子的染色(树形dp)
    BZOJ1283 序列(费用流)
    BZOJ1266 AHOI2006上学路线(最短路+最小割)
    BZOJ1041 HAOI2008圆上的整点(数论)
    BZOJ3505 CQOI2014数三角形(组合数学)
    BZOJ5206 JSOI2017原力(三元环计数)
  • 原文地址:https://www.cnblogs.com/leigepython/p/9996405.html
Copyright © 2020-2023  润新知