Java对象流的基本概念:
实例代码:
实体类User:
1 import java.io.Serializable; 2 3 /** 4 * @author zsh 5 * @company wlgzs 6 * @create 2019-01-25 15:11 7 * @Describe 8 */ 9 public class User implements Serializable {10 11 private Integer id;12 13 private String name;14 15 public User(Integer id, String name) {16 this.id = id;17 this.name = name;18 }19 20 @Override21 public String toString() {22 return "User{" +23 "id=" + id +24 ", name='" + name + '\'' +25 '}';26 }27 }
Main类:
1 import java.io.*; 2 import java.util.ArrayList; 3 4 public class Main { 5 6 public static void main(String[] args) throws IOException, ClassNotFoundException { 7 //1.定义1个存储user的ArrayList集合 8 ArrayListlist = new ArrayList<>(); 9 10 //2.往ArrayList集合中存储User对象11 list.add(new User(1,"张三"));12 list.add(new User(2,"李四"));13 list.add(new User(3,"王五"));14 15 //3.创建一个序列化流ObjectOutputSteam对象16 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("t.txt"));17 18 //4.使用ObjectOutputSteam对象的方法writeObject,对集合进行序列化19 oos.writeObject(list);20 21 //5.创建一个反序列化流ObjectInputSteam对象22 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("t.txt"));23 24 //6.使用ObjectInputStream对象的方法readObject,读取文件中保存的集合25 Object o = ois.readObject();26 27 //7.把Object类型的集合转换为ArrayList类型28 ArrayList list2 = (ArrayList ) o;29 30 //8.遍历ArrayList集合31 for (User user : list2) {32 System.out.println(user);33 }34 35 //9.释放资源36 oos.close();37 ois.close();38 39 }40 }
项目结构目录: