Java序列化流-ObjectOutputStream、ObjectInputStream


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     @Override
21     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         ArrayList<User> list = 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<User> list2 = (ArrayList<User>) 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 }

項目結構目錄:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM