zoukankan      html  css  js  c++  java
  • IO_ObjectOutputStream(对象的序列化)

    对象序列化就是将一些对象写入到硬盘中存储起来,以便下次复用

     1 import java.io.FileInputStream;
     2 import java.io.FileOutputStream;
     3 import java.io.IOException;
     4 import java.io.ObjectInputStream;
     5 import java.io.ObjectOutputStream;
     6 
     7 public class ObjectStreamDemo {
     8 
     9     public static void main(String[] args) throws IOException, ClassNotFoundException {
    10         //WriteObj();
    11         ReadObj();
    12     }
    13 
    14     public static void WriteObj() throws IOException {
    15         
    16         ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("F:\obj.object"));
    17         
    18         //对象序列化,被序列化的对象必须实现Serializable接口
    19         oos.writeObject(new Person("jianfeng",21));
    20         
    21         oos.close();
    22     }
    23     
    24     public static void ReadObj() throws IOException, ClassNotFoundException {
    25         
    26         ObjectInputStream ois = new ObjectInputStream(new FileInputStream("F:\obj.object"));
    27         
    28         //对象的反序列化
    29         Person p = (Person)ois.readObject();
    30         
    31         System.out.println(p.getName()+"::"+p.getAge());
    32     }
    33     
    34 
    35 }
     1 import java.io.Serializable;
     2 /*
     3  * Serializable    :用于给被序列化的类加入ID号的
     4  * 用于判断类和对象是否是同一个版本,这就是该接口存在的原因
     5  * */
     6 public class Person implements Serializable/*标记接口*/{
     7     
     8     //显示声明该类的ID号,(如果没给这个类加上ID号,将这个对象序列化后,这个类改变了,在进行反序列化的时候就会出错)
     9     private static final long serialVersionUID = 12345L;
    10     
    11     //transient:非静态数据不想被序列化可以使用这个关键字修饰(用静态修饰的数据也不会被序列化,但是该属性是不应该静态的,因为不是共享数据,那么就可以使用该修饰符了)
    12     public  String name;
    13     private  int age;
    14     
    15     public Person(String name, int age) {
    16         super();
    17         this.name = name;
    18         this.age = age;
    19     }
    20     public String getName() {
    21         return name;
    22     }
    23     public void setName(String name) {
    24         this.name = name;
    25     }
    26     public int getAge() {
    27         return age;
    28     }
    29     public void setAge(int age) {
    30         this.age = age;
    31     }
    32 }
  • 相关阅读:
    微信公众号开发的时候code失效的问题
    微信公众平台测试号通过网页授权获取用户的信息
    做了一些mysql的习题 感觉用来应付面试是足够了
    springMVC在使用重定向跳转
    jsp获取标签数据
    再来一次atm机 用文本做的
    django mysql数据库配置
    django url控制器
    django初始要做的事情
    flask学习
  • 原文地址:https://www.cnblogs.com/LO-ME/p/3596690.html
Copyright © 2011-2022 走看看