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

Java——对象序列化

作者头像
Winter_world
发布2020-09-25 10:10:19
8330
发布2020-09-25 10:10:19
举报

1、对象序列化基本概念

对象序列化指的是将在内存中保存的对象变为二进制数据流,这样对象可以保存在文件中或进行各种传输操作。要让类对象可被序列化,需要实现java.io.Serializable接口,此接口没有方法定义,属于标识接口。

eg:定义一个可被序列化的类

代码语言:javascript
复制
class Person implements Serializable{

        private String name;
        private int age;

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

如上,只是实现了Serializable接口,Per'son类对象就可以被传输或保存在文件中了。

2、序列化操作

依靠java.io.ObjecetOutputStream类进行对象的序列化操作,其为OutputStream的子类,

构造方法:public ObjectOutputStream(OutputStream out) throws IOException,取得ObjecetOutputStream类的实例化对象后,即可进行序列化操作。

利用输出对象方法:public final void writeObject(Object obj) throws IOException

eg:实现Person类对象的序列化

代码语言:javascript
复制
    private void ser(Person person) throws Exception{
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("E"+ File.separator+"person.ser"));
        oos.writeObject(person);
        oos.close();
    }

3、反序列化

利用ObjecetOutputStream输出的文件信息为二进制数据,看不懂,只能利用ObjecetInputStream类进行反序列化操作读取。其为InputStream的子类,

构造方法:public ObjectInputStream(InputStream out) throws IOException,取得ObjecetInputStream类的实例化对象后,即可进行反序列化操作。

利用方法:public final void readObject(Object obj) throws IOException

eg:实现Person类对象的反序列化

代码语言:javascript
复制
    private void dser() throws Exception{
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("E"+ File.separator+"person.ser"));
        Object obj = ois.readObject();
        System.out.println(obj);
        ois.close();
    }

4、transient关键字

可通过transient关键字定义实现类的某些属性不实现序列化。

代码语言:javascript
复制
private transient String name;

5、总结

1)要实现类对象的序列化,只需要实现Serializable接口,几乎简单Java类都有实现此接口;

2)ObjectOutputSream、ObjectInputStream很少由用户自己操作;

3)transient可保证属性不被序列化,但是用的很少。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

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