zoukankan      html  css  js  c++  java
  • 四种序列化器

    1.二进制序列化器

    /// <summary>
            /// 二进制序列化器
            /// </summary>
            public static void BinarySerialize()
            {
                //使用二进制序列化对象
                string fileName = Path.Combine(Constant.SerializeDataPath, @"BinarySerialize.txt");//文件名称与路径
                using (Stream fStream = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite))
                {//需要一个stream,这里是直接写入文件了
                    List<Programmer> pList = DataFactory.BuildProgrammerList();
                    BinaryFormatter binFormat = new BinaryFormatter();//创建二进制序列化器
                    binFormat.Serialize(fStream, pList);
                }
                using (Stream fStream = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite))
                {//需要一个stream,这里是来源于文件
                    BinaryFormatter binFormat = new BinaryFormatter();//创建二进制序列化器
                    //使用二进制反序列化对象
                    fStream.Position = 0;//重置流位置
                    List<Programmer> pList = (List<Programmer>)binFormat.Deserialize(fStream);//反序列化对象
                }
            }
    

    2.Soap序列化器

    public static void SoapSerialize()
            {
                //使用Soap序列化对象
                string fileName = Path.Combine(Constant.SerializeDataPath, @"SoapSerialize.txt");//文件名称与路径
                using (Stream fStream = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite))
                {
                    List<Programmer> pList = DataFactory.BuildProgrammerList();
                    SoapFormatter soapFormat = new SoapFormatter();//创建二进制序列化器
                    //soapFormat.Serialize(fStream, list);//SOAP不能序列化泛型对象
                    soapFormat.Serialize(fStream, pList.ToArray());
                }
                using (Stream fStream = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite))
                {
                    SoapFormatter soapFormat = new SoapFormatter();//创建二进制序列化器
                    //使用二进制反序列化对象
                    fStream.Position = 0;//重置流位置
                    List<Programmer> pList = ((Programmer[])soapFormat.Deserialize(fStream)).ToList();//反序列化对象
                }
            }
    

    3.xml序列化器

    public static void XmlSerialize()
            {
                //使用XML序列化对象
                string fileName = Path.Combine(Constant.SerializeDataPath, @"Student.xml");//文件名称与路径
                using (Stream fStream = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite))
                {
                    List<Programmer> pList = DataFactory.BuildProgrammerList();
                    XmlSerializer xmlFormat = new XmlSerializer(typeof(List<Programmer>));//创建XML序列化器,需要指定对象的类型
                    xmlFormat.Serialize(fStream, pList);
                }
                using (Stream fStream = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite))
                {
                    XmlSerializer xmlFormat = new XmlSerializer(typeof(List<Programmer>));//创建XML序列化器,需要指定对象的类型
                    //使用XML反序列化对象
                    fStream.Position = 0;//重置流位置
                    List<Programmer> pList = pList = (List<Programmer>)xmlFormat.Deserialize(fStream);
                }
            }
    

    4.json序列化器

  • 相关阅读:
    第一节,Django+Xadmin打造上线标准的在线教育平台—创建用户app,在models.py文件生成3张表,用户表、验证码表、轮播图表
    Tensorflow 错误:Unknown command line flag 'f'
    Python 多线程总结
    Git 强制拉取覆盖本地所有文件
    Hive常用函数 傻瓜学习笔记 附完整示例
    Linux 删除指定大小(范围)的文件
    Python 操作 HBase —— Trift Trift2 Happybase 安装使用
    梯度消失 梯度爆炸 梯度偏置 梯度饱和 梯度死亡 文献收藏
    Embedding 文献收藏
    深度学习在CTR预估中的应用 文献收藏
  • 原文地址:https://www.cnblogs.com/ITanyx/p/9064890.html
Copyright © 2011-2022 走看看