如何实现类对象的序列化/反序列化
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇内容主要讲解"如何实现类对象的序列化/反序列化",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何实现类对象的序列化/反序列化"吧!序列化与反序列化处理
千家信息网最后更新 2025年02月01日如何实现类对象的序列化/反序列化
本篇内容主要讲解"如何实现类对象的序列化/反序列化",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何实现类对象的序列化/反序列化"吧!
序列化与反序列化处理
有了序列化的支持类后,如果想要实现序列化和反序列化操作则可以利用以下两个类完成。
序列化: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类的直接操作,因为会有一些容器帮助开发者自动实现。
到此,相信大家对"如何实现类对象的序列化/反序列化"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
序列
对象
方法
开发
内容
实际
开发者
处理
学习
实用
更深
两个
之中
二进制
兴趣
喷嚏
姓名
实用性
容器
年龄
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
复制数据库数据文件
江苏浪潮服务器维修哪家便宜
嘉兴手机软件开发流程
g01服务器网络加固
广播有线电视网络技术
重视网络安全英语
如何购买香港服务器
江夏软件开发
湖北电脑软件开发公司
网络技术可以怎样学习
农安品质网络技术推荐咨询
世界软件开发公司排行榜
北京的软件开发 月薪
三级网络技术选择题怎么记
怎么显示数据库的所有用户
软件开发公司免税政策
天津省软件开发
成人计算机网络技术学些什么
智能家居网络安全分析与设计
个人手机软件开发
dell r330服务器
计算机网络技术拓补图文件
如何只复制未隐藏的数据库
新浪收件服务器密码
键值数据库和文档数据库的区别
怀柔区数据网络技术咨询
人大提案网络安全
网络安全 等有关法律法规
服务器系统显卡程序安装不上
担任网络安全协调会议召集人