前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 序列化基础知识

Java 序列化基础知识

作者头像
王小明_HIT
发布2020-03-25 21:35:22
3010
发布2020-03-25 21:35:22
举报

序列化反序列化概述

什么是序列化?

序列化,是将对象写入到 IO 流中

什么是反序列化?

从 IO 流中恢复对象。

有什么用?

序列化机制允许将实现序列化接口的Java对象转换为字节序列。这些字节序列化可以保存到磁盘上,通过网络传输,以达到恢复到原来的对象的目的。

怎么用?

在远程调用场景 RMI,RPC 都是经常使用,使得相关接口调用实现序列化接口。

如何序列化,反序列化

序列化的步骤:

创建一个输出流 ObjectOutPutStream

调用 ObjectOutPutStream对象的 writeObject 输出可序列化对象。

反序列化步骤:

创建 ObjectInputStream 对象,然后调用ObjectInputStream的 readObject 方法读取对象。

序列化和反序列化代码如下:

package JavaBase.serializable;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

class Person implements Serializable {
    private String name;

    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    /**
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        return "Person{" + "name='" + name + '\'' + ", age=" + age + '}';
    }
}

public class WriteObject {

    public static void main(String[] args) {
        try {
            // 序列化步骤,新建一个 ObjectOutputStream 镀锡
            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.txt"));
            Person person = new Person("xiaoming", 19);
            // 序列化 写入对象
            oos.writeObject(person);

            // 反序列化 新建一个ObjectInputStream
            ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object.txt"));
            // 反序列化 读取
            Person per = (Person) ois.readObject();

            System.out.println(per);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员奇点 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档