zoukankan      html  css  js  c++  java
  • Java学习笔记——序列化和反序列化

    寒雨连江夜入吴,平明送客楚山孤。

    洛阳亲友如相问,一片冰心在玉壶。

                  ——芙蓉楼送辛渐

    持久化数据的第一种方式。在序列化之前也可以把数据打散逐行存储在文件中,然后在逐行读取。

    比如定Student类

    用字符输出流把Student类的所有属性存入本地文件:

    张三|18|男

    李四|18|女

    读取一行,用|分隔的数据分别为学生的name,age,gender,创建学生对象并加入学生集合

    循环上一步直到br.readLine = null

    至于这种方法怎么存储对象的其他信息那就不清楚了。

    下面来看序列化

    上代码:

     1 public class SerializableDemo {
     2 
     3     public static void main(String[] args) throws IOException, ClassNotFoundException {
     4         //序列化对象obj,将obj存入本地文件obj.bin.对象obj的类必须Serializable接口
     5         OutputStream os = new FileOutputStream("/home/yanshaochen/public/obj.bin");//OutputStream抽象类
     6         ObjectOutputStream oos = new ObjectOutputStream(os);//ObjectOutputStream实例类
     7         oos.writeObject(obj);//持久化obj
     8         oos.close();
     9         //反序列化
    10         InputStream is = new FileInputStream("/home/yanshaochen/public/obj.bin");
    11         ObjectInputStream ois = new ObjectInputStream(is);
    12         @SuppressWarnings("unchecked")
    13         Object obj =(Object)ois.readObject();//强制转换可能出现ClassNotFoundException异常
    14     }
    15 }
  • 相关阅读:
    【javascript基础】之【理解JavaScript函数(函数和对象的区别和联系)】
    time
    IE6双倍边距
    【javascript基础】之【delete 运算符】
    【javascript基础】之【解剖JavaScript中的null和undefined】
    buildessential centos
    centOS restart xinetd
    g77 CentOS
    yum search package
    xos_thread
  • 原文地址:https://www.cnblogs.com/tomasman/p/6847451.html
Copyright © 2011-2022 走看看