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

    序列化和反序列化可以方便地实现对象(Object)和字节数组(byte[])的转换,其中序列化将Object转换为byte[],反序列化将byte[]转换为Object。

    其中值得注意的有以下几个方面:

    1. 将序列化的对象进行反序列化时,其中间的byte[]一定确保没有变化。否则将出现序列化(反序列化)异常。

    2. 序列化和反序列化的对象需声明[Serializable](可序列化的),切其包含的全部内容(字段)需可序列化。否则将发生序列化异常。(无法加载序列化所需的类型)

    3. 在将已序列化的对象反序列化时,不要求其byte[]的长度一致,反序列化时会自动省略其所需内容后的额外数据。

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace talefox.ShareLib
    {
        public class Serialable
        {
            /// <summary>  
            /// 序列化  
            /// </summary>  
            /// <param name="data">要序列化的对象</param>  
            /// <returns>数据缓冲区</returns>  
            public static byte[] Serialize(object obj)
            {
                System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                System.IO.MemoryStream stream = new System.IO.MemoryStream();
                formatter.Serialize(stream, obj);
                byte[] data = stream.GetBuffer();
                return data;
            }
            /// <summary>  
            /// 反序列化  
            /// </summary>  
            /// <param name="data">数据缓冲区</param>  
            /// <returns>对象</returns>  
            public static object Deserialize(byte[] data)
            {
                System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                System.IO.MemoryStream stream = new System.IO.MemoryStream(data);
                data = null;
                Object obj = formatter.Deserialize(stream);
                return obj;
            }
        }
    }

  • 相关阅读:
    python列表转json树菜单
    lvm分区创建和扩容
    分布式网络概述
    mycat权威指南阅读笔记--序言1
    Mongodb副本集实现及读写分离
    线程和进程
    socket客户端怎么判断http响应数据的结束
    java遍历http请求request的所有参数实现方法
    Java中mongodb使用and和or的复合查询
    idea @Override is not allowed when implementing interface method
  • 原文地址:https://www.cnblogs.com/talefox/p/1322580.html
Copyright © 2011-2022 走看看