您现在的位置是:亿华云 > IT科技类资讯
ObjectInputStream类实现对象的反序列,ObjectOutputStream类实现对象的序列化流
亿华云2025-10-04 01:02:37【IT科技类资讯】1人已围观
简介大家好,我是Java进阶者。前言本文主要学习ObjectInputStream类实现对象的反序列,ObjectOutputStream类实现对象的序列化流,接下来小编带大家一起来学习!一、 Objec
大家好,类类实我是实现Java进阶者。
前言
本文主要学习ObjectInputStream类实现对象的对象的反反序列,ObjectOutputStream类实现对象的序列现对象的序列序列化流,接下来小编带大家一起来学习!
一、化流 ObjectInputStream类
1.ObjectInputStream是类类实对象的反序列化流,它是实现InputStream类的子类。
2.ObjectInputStream类的对象的反构造方法
public ObjectInputStream(InputStream in):创建指定的输入流对象读取ObjectInputStream。参数in表示指定的序列现对象的序列输入流对象。
例子:
FileInputStream fs=new FileInputStream("test.txt"); ObjectInputStream os=new ObjectInputStream(fs);3.使用ObjectInputStream类实现对象的化流反序列化例子
import java.io.*; class Person implements Serializable{ // 实现序列化接口 private String id,name; private int age; //构造方法 public Person(String id,String name, int age) { this.id = id; this.name = name; this.age = age; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } public class P18{ public static void main(String[] args) throws Exception { //创建文件输入流对象,读取指定的类类实文件 FileInputStream fs=new FileInputStream("text/test"); //创建对象输入流 ObjectInputStream os=new ObjectInputStream(fs); //读取Person对象 Person p=(Person)os.readObject(); System.out.println("读取文本的数据后显示:"); System.out.println("id="+p.getId()+"\tname="+p.getName()+"\tage="+p.getAge()); } }运行的结果如下图所示:
从上面的代码中因为Person类中属性的私有的,使用访问器的源码下载实现方法set和get的方法,当调用ObjectInputStream的对象的反readObject()方法把text目录下的test的Person对象数据读取出来,这个就是序列现对象的序列反序列化。
二、化流ObjectOutputStream类
1.ObjectOutputStream是对象的序列化流,它是OutputStream类的子类。
2.ObjectOutputStream类的构造方法
public ObjectOutputStream(OutputStream out):创建指定的输出流对象写入ObjectOutputStream。参数out表示指定的输出流对象。
例子:
FileOutputStream fs=new FileOutputStream("test.txt"); ObjectOutputStream os=new ObjectOutputStream(fs);对象输出流使用writeObject(Object obj)方法将一个对象obj写入到一个文件,对象输入流使用readObject()方法从源中读取一个对象到程序中。
3.使用ObjectOutputStream类实现对象的序列化例子
import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.Serializable; public class Person implements Serializable{ // 实现序列化接口 private String id,name; private int age; //构造方法 public Person(String id,String name, int age) { this.id = id; this.name = name; this.age = age; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public static void main(String[] args) throws IOException { //创建一个Person对象 Person p=new Person("C01","进阶者",18); System.out.println("写入文件前的数据:"); System.out.println("id="+p.getId()+"\tname="+p.getName()+"\tage="+p.getAge()); //创建文件输出流对象,把数据写入text目录下的test.txt文件中 FileOutputStream fs=new FileOutputStream("text/test.txt"); //创建对象输出流 ObjectOutputStream os=new ObjectOutputStream(fs); os.writeObject(p); } }运行的结果如下图所示:
从上面的代码中,首先是服务器托管对Person对象进行实例化,它的id为c01,name为进阶者,年龄为18。当调用ObjectOutputStream的writeObject()方法将Person对象写入text目录下的test.txt。这就实现了序列化!
三、总结
本文主要介绍了ObjectInputStream类、ObjectOutputStream类。ObjectInputStream类是对象的反序列化流,它是InputStream类的子类,介绍了它的构造方法和方法,通过一个例子来学习使用ObjectInputStream类实现对象的反序列化。ObjectOutputStream类是是对象的序列化流,它是OutputStream类的子类,通过一个例子来学习使用ObjectOutputStream类实现对象的序列化。希望大家通过本文的学习,对你有所帮助!
云服务器提供商很赞哦!(1788)
相关文章
- 4、域名传输时,取决于域名原始用户的邮箱是否有效,以及他是否将密码发送到此邮箱。
- 如何实现秒级百万TPS?微博WAIC实时流计算平台架构演进
- 让Python代码更易维护的七种武器
- 哦,这就是Java的优雅停机?(实现及原理)
- 2、根据用户基础选择访问提供程序。由于互联问题的存在,接入商的选择也非常重要,如果用户群主要在联通,尽量选择联通接入较好的接入商,如果用户群主要在电信,那么选择电信接入较好的接入商。如果用户组位于国家/地区,则选择更好的访问提供程序进行交互。
- 如何实现秒级百万TPS?微博WAIC实时流计算平台架构演进
- Python函数式编程:不可变数据结构
- 传统企业请注意:不够痛就别微服务,有坑
- 2、定期提交和投标域名注册。例如,益华网络点击“立即预订”后,平台会抢先为客户注册域名。当然,一个域名可能会被多个客户预订,所以出价最高的人中标。
- Web前端之“神秘”的跨域方式