码迷,mamicode.com
首页 > 编程语言 > 详细

Java 之 序列化流

时间:2019-09-10 18:22:38      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:ima   str   tin   font   alt   arraylist   重构   题目   txt   

一、序列化概述

  Java 提供了一种对象 序列化 的机制。用一个字节序列可以表示一个对象,该字节序列包含该 对象的数据 对象的类型 对象中存储的属性 等信息。字节序列写出到文件之后,相当于文件中 持久保存 了一个对象的信息。

  反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化对象的数据 对象的类型 对象中存储的数据 信息,都可以用来在内存中创建对象。
  图解序列化

技术图片

二、ObjectOutputStream 类

三、ObjectInputStream 类

四、案例:序列化集合

  题目:将存有多个自定义对象的集合序列化操作,保存到 list.txt 文件中 ,反序列化 list.txt ,并遍历集合,打印对象信息。

  代码实现

 1 /*
 2     分析:
 3         1.定义一个存储Person对象的ArrayList集合
 4         2.往ArrayList集合中存储Person对象
 5         3.创建一个序列化流ObjectOutputStream对象
 6         4.使用ObjectOutputStream对象中的方法writeObject,对集合进行序列化
 7         5.创建一个反序列化ObjectInputStream对象
 8         6.使用ObjectInputStream对象中的方法readObject读取文件中保存的集合
 9         7.把Object类型的集合转换为ArrayList类型
10         8.遍历ArrayList集合
11         9.释放资源
12  */
13 public static void main(String[] args) throws IOException, ClassNotFoundException {
14         //1.定义一个存储Person对象的ArrayList集合
15         ArrayList<Person> list = new ArrayList<>();
16         //2.往ArrayList集合中存储Person对象
17         list.add(new Person("张三",18));
18         list.add(new Person("李四",19));
19         list.add(new Person("王五",20));
20         //3.创建一个序列化流ObjectOutputStream对象
21         ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("E:\\list.txt"));
22         //4.使用ObjectOutputStream对象中的方法writeObject,对集合进行序列化
23         oos.writeObject(list);
24         //5.创建一个反序列化ObjectInputStream对象
25         ObjectInputStream ois = new ObjectInputStream(new FileInputStream("E:\\list.txt"));
26         //6.使用ObjectInputStream对象中的方法readObject读取文件中保存的集合
27         Object o = ois.readObject();
28         //7.把Object类型的集合转换为ArrayList类型
29         ArrayList<Person> list2 = (ArrayList<Person>)o;
30         //8.遍历ArrayList集合
31         for (Person p : list2) {
32             System.out.println(p);
33         }
34         //9.释放资源
35         ois.close();
36         oos.close();
37     }

 

Java 之 序列化流

标签:ima   str   tin   font   alt   arraylist   重构   题目   txt   

原文地址:https://www.cnblogs.com/niujifei/p/11498638.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!