java序列化多个对象
简单来说同时序列化多个对象的方法就是通过将对象存储到集合中来实现的。
public class User implements Serializable {
private int id;
private String name;
......省略两个构造方法,Getter,Setter,toString。
序列化代码
public static void main(String[] args) throws Exception {
ObjectOutputStream o =new ObjectOutputStream(new FileOutputStream("User"));
List<User> l=new ArrayList<>();
l.add(new User(1,"zhangsan"));
l.add(new User(2,"lisi"));
l.add(new User(3,"wanlaowu"));
o.writeObject(l);
}
反序列化代码
public static void main(String[] args) throws Exception{
ObjectInputStream o =new ObjectInputStream(new FileInputStream("User"));
List o1 = (List)o.readObject();
for (Object o2 : o1) {
User o3=(User) o2;
System.out.println(o3);
}
}
运行结果
以上是我第一次实现的代码虽然运行成功但是有些繁琐,对反序列化的部分代码简化一下
List<User> l=(List<User>)o.readObject();
for (User u:l){
System.out.println(u);
}