如何实现类对象的序列化/反序列化

本篇内容主要讲解“如何实现类对象的序列化/反序列化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现类对象的序列化/反序列化”吧!

成都创新互联公司专注于双滦企业网站建设,响应式网站开发,商城网站制作。双滦网站建设公司,为双滦等地区提供建站服务。全流程定制网站设计,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务

序列化与反序列化处理

有了序列化的支持类后,如果想要实现序列化和反序列化操作则可以利用以下两个类完成。
序列化:ObjectOutputStream:

类定义:public class ObjectOutputStream extends OutputStream implements ObjectOutput, ObjectStreamConstants构造方法:
    public ObjectOutputStream(OutputStream out) throws IOException操作方法:
    public final void writeObject(Object obj) throws IOException

反序列化:ObjectInputStream:

类定义:public class ObjectInputStream extends InputStream implements ObjectInput,ObjectStreamConstants构造方法:
    public ObjectInputStream(InputStream in) throws IOException操作方法:
    public final Object readObject() throws IOException, ClassNotFoundException

范例:实现序列化与反序列化

import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;
@SuppressWarnings("serial")class Person implements Serializable {//Person类可以被序列化private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;
    }
    @Overridepublic String toString() {return "姓名:" + this.name + "、年龄:" + this.age;
    }
}public class JavaAPIDemo {private static final File SAVE_FILE=new File("D:" + File.separator + "mldn.person");public static void main(String[] args) throws Exception {//saveObject(new Person("小喷嚏",78));System.out.println(loadObject());
    }public static void saveObject(Object obj)throws Exception{
        ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(SAVE_FILE));
        oos.writeObject(obj);  //序列化oos.close();
    }public static Object loadObject()throws Exception{
        ObjectInputStream ois=new ObjectInputStream(new FileInputStream(SAVE_FILE));
        Object obj= ois.readObject();   //反序列化ois.close();return obj;
    }
}

在Java中的对象序列化与反序列化必须使用内部提供的对象操作流,因为这里面牵扯到了二进制数据的格式,所以不能自定义处理,另外如果要想实现一组对象的序列化,则可以使用对象数组完成。

在很多的实际项目开发过程之中,开发者很少能见到ObjectOutputStream、ObjectInputStream类的直接操作,因为会有一些容器帮助开发者自动实现。

到此,相信大家对“如何实现类对象的序列化/反序列化”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


当前标题:如何实现类对象的序列化/反序列化
转载注明:http://hbruida.cn/article/gchedg.html