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 }
  • 相关阅读:
    windows p12(pfx)个人证书安装过程
    OpenSSL库验证PKCS7签名
    Crypto库实现PKCS7签名与签名验证
    windows 系统中打开一个数字证书所经历的过程
    DBA不可不知的操作系统内核参数
    MySQL大表优化方案
    深入浅出Cache
    Git Stash用法
    Git服务器搭建全过程分步详解
    laravel 5.1 性能优化对比
  • 原文地址:https://www.cnblogs.com/tomasman/p/6847451.html
Copyright © 2011-2022 走看看