• 序列化和反序列化


    序列化是将对象的状态写入到特定的流的过程

    反序列化则是从特定的流中获取数据重新构建对象的过程
    使用集合保存对象,可以将集合中的所有对象序列化

     //创建上student类

    package xulie;

    import java.io.Serializable;

    public class student implements Serializable {

     // 学生的姓名
     public String nameString;
     // 学生的年龄
      public int Age;
     // 学生的性别
     public String Sex;

     public student(String namString, int age, String sex) {
      this.nameString = namString;
      this.Age = age;
      this.Sex = sex;
     }

     public void show() {
      System.out.println("学生 的姓名" + nameString + " 学生的年龄" + Age + "学生的性别"
        + Sex);
     }
    }

    //序列化的的代码 和反序列化

    package xulie;

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;

    public class Text {
     public static void main(String[] args) {
      // 创建一个序列化 的 学生对象
      student stu = new student("呵呵", 12, "男");
      // 创建一个对象输出流
      FileOutputStream file = null;
      ObjectOutputStream out = null;
      // 创建对象输入流
      FileInputStream file1 = null;
      ObjectInputStream out1 = null;
      try {
       file = new FileOutputStream("F:\java IO\序列化和反序列化\新建文本文档.txt");
      } catch (FileNotFoundException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
      try {
       out = new ObjectOutputStream(file);
       out.writeObject(stu);
       System.err.println("创建成功");
       file1 = new FileInputStream("F:\java IO\序列化和反序列化\新建文本文档.txt");
       out1 = new ObjectInputStream(file1);
       try {
        student s2 = (student) out1.readObject();
        System.err.println(s2.Age + "" + s2.nameString + "" + s2.Sex);
       } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       }
      } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } finally {
       if (out != null) {
        try {
         out.close();
        } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
        }
       }
      }
     }
    }

    实现接口 Serializable 这个接口

    transient 可以不用序列化

  • 相关阅读:
    SQL里的EXISTS与in、not exists与not in
    N秒后自动跳转
    Array类型的扩展
    css中block与inline的区别
    数据绑定表达式语法(Eval,Bind区别)
    case
    SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY的比较 (转载)
    内容随鼠标漂移
    IIS下下伪静态html(URL Rewrite)设置方法
    sql查询含有某列名的所有表
  • 原文地址:https://www.cnblogs.com/wh1520577322/p/8183237.html
Copyright © 2020-2023  润新知