美文网首页
java实现序列化及反序列化

java实现序列化及反序列化

作者: 开朗的饭团 | 来源:发表于2020-01-15 21:13 被阅读0次

-例

  1. 创建Student类
public class Student implements Serializable {
    private String name;
    private String sex;
    private Integer age;
    private String address;
    private String phone;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}

2.创建SerializeTest类,实现对Student类的序列化及反序列化

public class SerializeTest {
    public static void main(String[] args) throws IOException {
        serialize();
        Student s = (Student) deserialize();
        System.out.println("姓名:" + s.getName() + "\n年龄:" + s.getAge() + "\n性别:" + s.getSex() + "\n地址:" + s.getAddress() + "\n手机:" + s.getPhone());
    }

    public static Object deserialize() throws IOException {
        Student s = new Student();
        File f = new File("D:/student.out");
        InputStream is = new FileInputStream(f);
        ObjectInputStream ois = null;
        try {
            ois = new ObjectInputStream(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            s = (Student) ois.readObject();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        is.close();
        ois.close();
        return s;
    }

    public static void serialize() {
        Student s = new Student();
        s.setName("张三");
        s.setAge(32);
        s.setSex("man");
        s.setAddress("阜阳");
        s.setPhone("12345678910");
        OutputStream os = null;
        ObjectOutputStream oos = null;
        File f = new File("D:/student.out");
        try {
            os = new FileOutputStream(f);
            oos = new ObjectOutputStream(os);
            oos.writeObject(s);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (oos != null)
                try {
                    oos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            if (os != null)
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        }
    }
}

相关文章

  • Protobuf的序列化与反序列化

    Protobuf的序列化与反序列化 proto.proto文件内容 Java 实现 序列化 反序列化 GO 实现 ...

  • Java序列化与反序列化

    问题 Java序列化与反序列化是什么?为什么需要序列化与反序列化?有什么好处?如何实现Java序列化与反序列化? ...

  • java 序列化和反序列化

    使用Java的序列化和反序列化可以实现信息的持久存储要实现序列化必须实现java.io.Serializable这...

  • java专题之序列化

    一、基本概念 1、什么是序列化和反序列化 (1)Java序列化是指把Java对象转换为字节序列的过程,而Java反...

  • 序列化(java Serializeable、json、prot

    java序列化 序列化:将对象写入到IO流中反序列化:从IO流中恢复对象意义:序列化机制允许将实现序列化的Java...

  • 一个关于hessian的疑问

    hessian是一个java序列化库。dubbo底层用这个库序列化java对象。hessian序列化需要实现Ser...

  • 序列化

    Java的Serializable序列化原理:序列化是通过FileOutputStream及ObjectOutpu...

  • Java 序列化Serializable 及 transient

    java 中的 Serializable 接口是用于实现对象 序列化和反序列化 的功能。那么什么是序列化和反序列化...

  • Java-序列化-反序列化

    Thanks Java基础学习总结——Java对象的序列化和反序列化java序列化反序列化原理Java 序列化的高...

  • 详解Java序列化机制

    序列化有什么意义 首先我们先看看,java中的序列化,在java语言中实例对象想要序列化传输,需要实现Serial...

网友评论

      本文标题:java实现序列化及反序列化

      本文链接:https://www.haomeiwen.com/subject/wmlxzctx.html