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

      

  • 相关阅读:
    MindMup 是一个开源的、在线的、简单的思维导图工具
    那些年我们用过的Python代码
    我心目中要求不高的理想团队
    与雨林再辩科学、宗教和道
    MySQL(一) 数据表数据库的基本操作
    hibernate(六) cascade(级联)和inverse关系详解
    java虚拟机内存区域的划分以及作用详解
    MySQL(二) 数据库数据类型详解
    MySQL(三) 数据库表的查询操作【重要】
    MySQL(四) 数据表的插入、更新、删除数据
  • 原文地址:https://www.cnblogs.com/leigepython/p/9996405.html
Copyright © 2011-2022 走看看