java 序列化 list_Java之序列化集合练习

各位小伙伴们大家好,在之前的文章中,小编介绍了一些关于对象的序列化与反序列化的一些知识,这次小编要介绍的是序列化集合的练习。

练习:序列化集合

当我们想在文件中保存多个对象的时候,可以把对象存储到一个集合中,对集合进行序列化和反序列化。

分析:

1. 定义一个存储Person对象的ArrayList集合

2. 往ArrayList集合中存储Person对象

3. 创建一个序列化流ObjectOutputStream对象

4. 使用ObjectOutputStream对象中的方法writeObject,对集合进行序列化

5. 创建一个反序列化ObjectInputStream对象

6. 使用ObjectInputStream对象中的方法readObject读取文件中保存的集合

7. 把Object类型的集合转换为ArrayList类型

8. 遍历ArrayList集合

9. 释放资源

代码如下(先定义一个Person类):

public class Person implements Serializable {

private static final long serialVersionUID = 111;

private String name;

public int age;

@Override

public String toString() {

return "Person{" +

"name='" + name + '\'' +

", age=" + age +

'}';

}

public Person(String name, int age) {

this.name = name;

this.age = age;

}

public Person() {

}

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;

}

}

50e7e65279ff280771e48a1998b4e4d6.png

main方法:

public class Demo03Text {

public static void main(String[] args) throws IOException, ClassNotFoundException {

//1. 定义一个存储Person对象的ArrayList集合

ArrayList list=new ArrayList<>();

//2. 往ArrayList集合中存储Person对象

list.add(new Person("小明",12));

list.add(new Person("小欢",13));

list.add(new Person("小可",14));

//3. 创建一个序列化流ObjectOutputStream对象

ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("D:a.txt"));

//4. 使用ObjectOutputStream对象中的方法writeObject,对集合进行序列化

oos.writeObject(list);

//5. 创建一个反序列化ObjectInputStream对象

ObjectInputStream ois=new ObjectInputStream(new FileInputStream("D:a.txt"));

//6. 使用ObjectInputStream对象中的方法readObject读取文件中保存的集合

Object o= ois.readObject();

//7. 把Object类型的集合转换为ArrayList类型

ArrayList list2=(ArrayList)o;

//8. 遍历ArrayList集合

for (Person p : list2) {

System.out.println(p);

}

//9. 释放资源

ois.close();

oos.close();

}

关于序列化集合练习,就是用ArrayList集合存储Person对象的数据,然后定义一个ObjectOutputStream对象,调用ObjectWrite读取数据,对ArrayListJava之ArrayList集合的简单介绍进行序列化,反序列化与序列化的方法一样。里面也涉及以前的知识,大家有空可以翻一翻小编之前写的文章,关于这篇文章,小编就先说到这里,希望可以帮到大家,也欢迎各位小伙伴,补充和纠错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值