术--序列化与反序列化

来源:互联网 发布:淘宝代码在线生成 编辑:程序博客网 时间:2024/05/21 19:37

解题思路:

1.是什么

2.为什么

3.怎么做


一,是什么?(摘自百度百科)



二.为什么

核心语句:将当前状态写入到临时或持久性存储区。

分析:当前状态---对象

   写入到 存储区----多是写成文本!

遇到问题: 对象怎么变成文本。通过对象流 变成文本流。

三.怎么做

解题:(直接上代码了)


  1. package XuLIEhua;


  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.ObjectInputStream;
  5. import java.io.ObjectOutputStream;
  6. import java.io.Serializable;


  7. public class Student implements Serializable {
  8. String name;
  9. String id;


  10. public Student(String name, String id) {
  11. super();
  12. this.name = name;
  13. this.id = id;
  14. }


  15. @Override
  16. public String toString() {
  17. return "Student [name=" + name + ", id=" + id + "]";
  18. }
  1. //序列化反序列化我都写在主方法里了
  2. public static void main(String[] args) throws Exception {


  3. Student s1 = new Student("张三", "1");


  4. // 序列化第一步 把对象写到文件里 所以需要文件流输出 object流输出
  5. FileOutputStream fos = new FileOutputStream("d:/h.txt");
  6. ObjectOutputStream ops = new ObjectOutputStream(fos);
  7. ops.writeObject(s1);
  8. // 刷新 write都要刷新
  9. ops.flush();
  10. ops.close();
  11. fos.close();


  12. // 第二步 反序列化 从文件夹中读取 file流 object流
  13. FileInputStream fis = new FileInputStream("d:/h.txt");
  14. ObjectInputStream ois = new ObjectInputStream(fis);
  15. Student readObject = (Student) ois.readObject();
  16. //关流
  17. ois.close();
  18. fis.close();
  19. //输出独出的对象测试
  20. System.out.println(readObject);


  21. }


  22. }

反序列化把序列化倒推即可。

QQ:1058387282   欢迎交流

原创粉丝点击