输入输出流-序列化和反序列化

 1 package demo;
 2 
 3 import java.io.Serializable;
 4 
 5 public class Student implements Serializable{
 6     private String name;  //姓名
 7     private int id;  //学号
 8     private String sex;  //性别
 9     
10     public Student() {
11     }
12 
13     public Student(String name, int id, String sex) {
14         this.name = name;
15         this.id = id;
16         this.sex = sex;
17     }
18 
19     public String getName() {
20         return name;
21     }
22 
23     public void setName(String name) {
24         this.name = name;
25     }
26 
27     public int getId() {
28         return id;
29     }
30 
31     public void setId(int id) {
32         this.id = id;
33     }
34 
35     public String getSex() {
36         return sex;
37     }
38 
39     public void setSex(String sex) {
40         this.sex = sex;
41     }
42     
43     
44 }
 1 package demo;
 2 
 3 import java.io.FileInputStream;
 4 import java.io.FileNotFoundException;
 5 import java.io.FileOutputStream;
 6 import java.io.IOException;
 7 import java.io.ObjectInputStream;
 8 import java.io.ObjectOutputStream;
 9 import java.util.ArrayList;
10 
11 public class Test8 {
12     //序列化
13     public static void objectOutput(String path) {
14         ObjectOutputStream oos=null;
15         FileOutputStream fos=null;
16         
17         try {
18             fos=new FileOutputStream(path);
19             oos=new ObjectOutputStream(fos);
20             Student stu1=new Student("李明",01,"男");
21             Student stu2=new Student("张晴",02,"女");
22             Student stu3=new Student("吴勇",03,"男");
23             ArrayList<Student> list=new ArrayList();
24             list.add(stu1);
25             list.add(stu2);
26             list.add(stu3);
27             //对象序列化,写入输出流
28             oos.writeObject(list);
29         } catch (FileNotFoundException e) {
30             e.printStackTrace();
31         } catch (IOException e) {
32             e.printStackTrace();
33         }finally {
34             try {
35                 if(oos!=null) {
36                     oos.close();
37                 }
38                 if(fos!=null) {
39                     fos.close();
40                 }
41             } catch (IOException e) {
42                 e.printStackTrace();
43             }
44         }
45     }
46     
47     //反序列化
48     public static void objectInput(String path) {
49         ObjectInputStream ois=null;
50         FileInputStream fis=null;
51         
52         try {
53             fis=new FileInputStream(path);
54             ois=new ObjectInputStream(fis);
55             //反序列化,进行强转类型转换
56             ArrayList<Student> list=(ArrayList<Student>)ois.readObject();
57             //输出生成后的对象信息
58             for (Student stu : list) {
59                 System.out.println("姓名是:"+stu.getName()+"\n学号是:"+stu.getId()+"\n性别是:"+stu.getSex());
60             }
61         } catch (FileNotFoundException e) {
62             e.printStackTrace();
63         } catch (IOException e) {
64             e.printStackTrace();
65         } catch (ClassNotFoundException e) {
66             e.printStackTrace();
67         }finally {
68             
69         }
70         
71     }
72     
73     public static void main(String[] args) {
74         objectOutput("test2.txt");    
75         objectInput("test2.txt");
76     }
77 }

猜你喜欢

转载自www.cnblogs.com/baichang/p/10205679.html