zoukankan      html  css  js  c++  java
  • 序列化和反序列化

    一、介绍

        1.序列化和反序列化,我们可能经常会听到,其实通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,

           反序列化就是在适当的时候把这个文件再转化成原来的对象使用。

        2.把对象转换为字节序列的过程称为对象的序列化。
       把字节序列恢复为对象的过程称为对象的反序列化。

        3.序列化和反序列化的作用 

      1>在进程下次启动时读取上次保存的对象的信息 2>、在不同的AppDomain或进程之间传递数据 3>、在分布式应用系统中传递数据 
    

      4.常见的序列化方法

     1>、BinaryFormatter  2>、SoapFormatter  3>、XML序列化
    

      5.BinaryFormatter  的用法

    //BinaryFormatter将对象序列化到文件中
    List<string> inputList = new List<string>() 
    using (FileStream fsWriter = new FileStream(@"gz168168.tmp",FileMode.Create,FileAccess.Write))//存入的文件数据(序列化对象)
    {
           BinaryFormatter bf = new BinaryFormatter();//
           //序列化
           bf.Serialize(fsWriter, inputList);
    }
    
    //BinaryFormatter将文件中的数据反序列化出来
    List<string> outputList = new List<string>();
    using (FileStream fsReader = new FileStream(@"gz168168.tmp",FileMode.Open,FileAccess.Read))
    {
           BinaryFormatter bf = new BinaryFormatter();
           //反序列化
           outputList = (List<string>)bf.Deserialize(fsReader);
    }

        6.MXL序列化的用法

    List<string> inputList = new List<string>() 
    using (FileStream fsWriter = new FileStream(@"test.xml",FileMode.Create,FileAccess.Write))//存入的文件数据(序列化对象)
    {
          XmlSerializer xs = new XmlSerializer(typeof(List<string>));
          xs.Serialize(fsWriter, inputList);
    }
    
    //从test.xml文件中反序列化出来
    List<string> outputList = new List<string>();
    using (FileStream fsReader = new FileStream(@"test.xml",FileMode.Open,FileAccess.Read))
    {
         XmlSerializer xs = new XmlSerializer(typeof(List<string>));
         outputList = xs.Deserialize(fsReader) as List<string>;
    }
    

       7.序列化的优点

    二进制序列化的优点: 
      1. 所有的类成员(包括只读的)都可以被序列化;
      2. 性能非常好。
    XML序列化的优点:
      1. 互操作性好;
      2. 不需要严格的二进制依赖;
      3. 可读性强

     8.总结

    序列化      
       1.得到一个存储对象的类型
      2.创建一个写入文件流
      3.定义要序列化的类型
      4.调用序列化方法
    反序列化:
      1.定义一个装载对象的类型
      2.创建一个读出文件流
      3.定义要反序列化的类型
      4.调用反序列化方法
    

      

  • 相关阅读:
    TCP心跳 | TCP keepAlive(转)
    闲说HeartBeat心跳包和TCP协议的KeepAlive机制
    一个DNS统计,RCFs,工具站点
    JMX
    【转】如何实现一个配置中心
    用Netty开发中间件:高并发性能优化
    UDP server & client
    DNS缓存
    C正则库做DNS域名验证时的性能对比
    DNS压力测试工具dnsperf简介
  • 原文地址:https://www.cnblogs.com/fanna/p/4843469.html
Copyright © 2011-2022 走看看