gpt4 book ai didi

ObjectInputStream类实现对象的反序列,ObjectOutputStream类实现对象的序列化流

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章ObjectInputStream类实现对象的反序列,ObjectOutputStream类实现对象的序列化流由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

ObjectInputStream类实现对象的反序列,ObjectOutputStream类实现对象的序列化流

大家好,我是Java进阶者.

前言

本文主要学习ObjectInputStream类实现对象的反序列,ObjectOutputStream类实现对象的序列化流,接下来小编带大家一起来学习.

1、 ObjectInputStream类

1.ObjectInputStream是对象的反序列化流,它是InputStream类的子类.

2.ObjectInputStream类的构造方法 。

public ObjectInputStream(InputStream in):创建指定的输入流对象读取ObjectInputStream。参数in表示指定的输入流对象.

例子:

  1. FileInputStream fs=new FileInputStream("test.txt");
  2. ObjectInputStream os=new ObjectInputStream(fs);

3.使用ObjectInputStream类实现对象的反序列化例子 。

  1. import java.io.*;
  2. class Person implements Serializable{
  3. // 实现序列化接口
  4. private String id,name;
  5. private int age;
  6. //构造方法
  7. public Person(String id,String name, int age) {
  8. this.id = id;
  9. this.name = name;
  10. this.age = age;
  11. }
  12. public String getId() {
  13. return id;
  14. }
  15. public void setId(String id) {
  16. this.id = id;
  17. }
  18. public String getName() {
  19. return name;
  20. }
  21. public void setName(String name) {
  22. this.name = name;
  23. }
  24. public int getAge() {
  25. return age;
  26. }
  27. public void setAge(int age) {
  28. this.age = age;
  29. }
  30. }
  31. public class P18{
  32. public static void main(String[] args) throws Exception {
  33. //创建文件输入流对象,读取指定的文件
  34. FileInputStream fs=new FileInputStream("text/test");
  35. //创建对象输入流
  36. ObjectInputStream os=new ObjectInputStream(fs);
  37. //读取Person对象
  38. Person p=(Person)os.readObject();
  39. System.out.println("读取文本的数据后显示:");
  40. System.out.println("id="+p.getId()+"\tname="+p.getName()+"\tage="+p.getAge());
  41. }
  42. }

运行的结果如下图所示:

ObjectInputStream类实现对象的反序列,ObjectOutputStream类实现对象的序列化流

从上面的代码中因为Person类中属性的私有的,使用访问器的方法set和get的方法,当调用ObjectInputStream的readObject()方法把text目录下的test的Person对象数据读取出来,这个就是反序列化.

2、ObjectOutputStream类

1.ObjectOutputStream是对象的序列化流,它是OutputStream类的子类.

2.ObjectOutputStream类的构造方法 。

public ObjectOutputStream(OutputStream out):创建指定的输出流对象写入ObjectOutputStream。参数out表示指定的输出流对象.

例子:

  1. FileOutputStream fs=new FileOutputStream("test.txt");
  2. ObjectOutputStream os=new ObjectOutputStream(fs);

对象输出流使用writeObject(Object obj)方法将一个对象obj写入到一个文件,对象输入流使用readObject()方法从源中读取一个对象到程序中.

3.使用ObjectOutputStream类实现对象的序列化例子 。

  1. import java.io.FileOutputStream;
  2. import java.io.IOException;
  3. import java.io.ObjectOutputStream;
  4. import java.io.Serializable;
  5. public class Person implements Serializable{
  6. // 实现序列化接口
  7. private String id,name;
  8. private int age;
  9. //构造方法
  10. public Person(String id,String name, int age) {
  11. this.id = id;
  12. this.name = name;
  13. this.age = age;
  14. }
  15. public String getId() {
  16. return id;
  17. }
  18. public void setId(String id) {
  19. this.id = id;
  20. }
  21. public String getName() {
  22. return name;
  23. }
  24. public void setName(String name) {
  25. this.name = name;
  26. }
  27. public int getAge() {
  28. return age;
  29. }
  30. public void setAge(int age) {
  31. this.age = age;
  32. }
  33. public static void main(String[] args) throws IOException {
  34. //创建一个Person对象
  35. Person p=new Person("C01","进阶者",18);
  36. System.out.println("写入文件前的数据:");
  37. System.out.println("id="+p.getId()+"\tname="+p.getName()+"\tage="+p.getAge());
  38. //创建文件输出流对象,把数据写入text目录下的test.txt文件中
  39. FileOutputStream fs=new FileOutputStream("text/test.txt");
  40. //创建对象输出流
  41. ObjectOutputStream os=new ObjectOutputStream(fs);
  42. os.writeObject(p);
  43. }
  44. }

运行的结果如下图所示:

ObjectInputStream类实现对象的反序列,ObjectOutputStream类实现对象的序列化流

从上面的代码中,首先是对Person对象进行实例化,它的id为c01,name为进阶者,年龄为18。当调用ObjectOutputStream的writeObject()方法将Person对象写入text目录下的test.txt。这就实现了序列化.

3、总结

本文主要介绍了ObjectInputStream类、ObjectOutputStream类。ObjectInputStream类是对象的反序列化流,它是InputStream类的子类,介绍了它的构造方法和方法,通过一个例子来学习使用ObjectInputStream类实现对象的反序列化。ObjectOutputStream类是是对象的序列化流,它是OutputStream类的子类,通过一个例子来学习使用ObjectOutputStream类实现对象的序列化。希望大家通过本文的学习,对你有所帮助.

原文链接:https://mp.weixin.qq.com/s/2hV6ujhLOGCc7CKzGIw_ww 。

最后此篇关于ObjectInputStream类实现对象的反序列,ObjectOutputStream类实现对象的序列化流的文章就讲到这里了,如果你想了解更多关于ObjectInputStream类实现对象的反序列,ObjectOutputStream类实现对象的序列化流的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com