• Java序列化反序列化对象流ObjectInputStream、ObjectOutputStream


    使用Person类作为Object进行示范

    注意:Object要能被写入流需要实现Serializable接口

    存储的文件后缀名为.ser

    示范Person

    import java.io.Serializable;

    public class Person implements Serializable{
        private static final long serialVersionUID = 1L;
        String name;
        int age;
        boolean sex;//true means male  false means female
        Person(String name,int age,boolean sex)
        {
            this.name=name;
            this.age=age;
            this.sex=sex;
        }
        void print()
        {
            System.out.println("姓名:"+name);
            System.out.println("年纪:"+age);
            System.out.println("性别:"+sex);
        }
    }

    将Person对象序列化存储到文件

    示范Serializable_Test 类

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.ObjectOutputStream;

    public class Serializable_Test {

        public static void main(String[] args) {
            try {
                Person p=new Person("张三",18,true);
                File f=new File("D:\objecttest.ser");
                FileOutputStream fos=new FileOutputStream(f);
                ObjectOutputStream oos=new ObjectOutputStream(fos);
                oos.writeObject(p);
                oos.close();
                fos.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

     

    从文件中读取对象,反序列化Deserializable

    示范Deserializable_Test类

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.ObjectInputStream;

    public class Deserializable_Test {

        public static void main(String[] args) {
            try {
                File f=new File("d:\objecttest.ser");
                FileInputStream fis=new FileInputStream(f);
                ObjectInputStream ois=new ObjectInputStream(fis);
                Person p=(Person)ois.readObject();
                p.print();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

     

  • 相关阅读:
    清除大文本中的html标签
    页面中富文本的使用
    artDialog的几种基本使用
    SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR)[转]
    Struts2
    js中window.location的用法
    keycode键盘 按键
    jQuery升级踩坑之路
    生成唯一随机码的方法及优缺点分析
    百度API的经历,怎样为多个点添加带检索功能的信息窗口
  • 原文地址:https://www.cnblogs.com/HumorChen/p/10550190.html
Copyright © 2020-2023  润新知