




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.Net序列化与数据压缩类using System;using System.Collections.Generic;using System.IO.Compression;using System.Text;using System.Data;using System.IO;using System.Runtime.Serialization;using System.Runtime.Serialization.Formatters.Binary;using KCSvrOpr.Encrypt;using System.Xml;namespace KCSvrOpr.DataFormat / / 功 能:对数据的基本操作 / 作 者:BQONE / 创建日期:2007年04月17日 / 更新作者: / 更新日期: / 添加功能: / 描 述:包括数据的压缩,对象与byte之间的转换 / 版 权:HN KC / public class KCDataFormatter public KCDataFormatter() / / 将DataSet格式化成字节数组byte / / DataSet对象 / 字节数组 public static byte GetBinaryFormatData(DataSet dsOriginal) byte binaryDataResult = null; MemoryStream memStream = new MemoryStream(); IFormatter brFormatter = new BinaryFormatter(); dsOriginal.RemotingFormat = SerializationFormat.Binary; brFormatter.Serialize(memStream, dsOriginal); binaryDataResult = memStream.ToArray(); memStream.Close(); memStream.Dispose(); return binaryDataResult; / / 将DataSet格式化成字节数组byte,并且已经经过压缩 / / DataSet对象 / 字节数组 public static byte GetBinaryFormatDataCompress(DataSet dsOriginal) byte binaryDataResult = null; MemoryStream memStream = new MemoryStream(); IFormatter brFormatter = new BinaryFormatter(); dsOriginal.RemotingFormat = SerializationFormat.Binary; brFormatter.Serialize(memStream, dsOriginal); binaryDataResult = memStream.ToArray(); memStream.Close(); memStream.Dispose(); return Compress(binaryDataResult); / / 解压数据 / / / public static byte Decompress(byte data) byte bData; MemoryStream ms = new MemoryStream(); ms.Write(data, 0, data.Length); ms.Position = 0; GZipStream stream = new GZipStream(ms, CompressionMode.Decompress, true); byte buffer = new byte1024; MemoryStream temp = new MemoryStream(); int read = stream.Read(buffer, 0, buffer.Length); while (read 0) temp.Write(buffer, 0, read); read = stream.Read(buffer, 0, buffer.Length); /必须把stream流关闭才能返回ms流数据,不然数据会不完整 stream.Close(); stream.Dispose(); ms.Close(); ms.Dispose(); bData = temp.ToArray(); temp.Close(); temp.Dispose(); return bData; / / 压缩数据 / / / public static byte Compress(byte data) byte bData; MemoryStream ms = new MemoryStream(); GZipStream stream = new GZipStream(ms, CompressionMode.Compress, true); stream.Write(data, 0, data.Length); stream.Close(); stream.Dispose(); /必须把stream流关闭才能返回ms流数据,不然数据会不完整 /并且解压缩方法stream.Read(buffer, 0, buffer.Length)时会返回0 bData = ms.ToArray(); ms.Close(); ms.Dispose(); return bData; / / 将字节数组反序列化成DataSet对象 / / 字节数组 / DataSet对象 public static DataSet RetrieveDataSet(byte binaryData) DataSet dsOriginal = null; MemoryStream memStream = new MemoryStream(binaryData); IFormatter brFormatter = new BinaryFormatter(); Object obj = brFormatter.Deserialize(memStream); dsOriginal = (DataSet)obj; return dsOriginal; / / 将字节数组反解压后序列化成DataSet对象 / / 字节数组 / DataSet对象 public static DataSet RetrieveDataSetDecompress(byte binaryData) DataSet dsOriginal = null; MemoryStream memStream = new MemoryStream(Decompress(binaryData); IFormatter brFormatter = new BinaryFormatter(); Object obj = brFormatter.Deserialize(memStream); dsOriginal = (DataSet)obj; return dsOriginal; / / 将object格式化成字节数组byte / / object对象 / 字节数组 public static byte GetBinaryFormatData(object dsOriginal) byte binaryDataResult = null; MemoryStream memStream = new MemoryStream(); IFormatter brFormatter = new BinaryFormatter(); brFormatter.Serialize(memStream, dsOriginal); binaryDataResult = memStream.ToArray(); memStream.Close(); memStream.Dispose(); return binaryDataResult; / / 将objec格式化成字节数组byte,并压缩 / / object对象 / 字节数组 public static byte GetBinaryFormatDataCompress(object dsOriginal) byte binaryDataResult = null; MemoryStream memStream = new MemoryStream(); IFormatter brFormatter = new BinaryFormatter(); brFormatter.Serialize(memStream, dsOriginal); binaryDataResult = memStream.ToArray(); memStream.Close(); memStream.Dispose(); return Compress(binaryDataResult); / / 将字节数组反序列化成object对象 / / 字节数组 / object对象 public static object RetrieveObject(byte binaryData) MemoryStream memStream = new MemoryStream(binaryData); IFormatter brFormatter = new BinaryFormatter(); Object obj = brFormatter.Deserialize(memStream); return obj; / / 将字节数组解压后反序列化成object对象 / / 字节数组 / object对象 public static object RetrieveObjectDecompress(byte binaryData) MemoryStream memStream = new MemoryStream(Decompress(binaryData); IFormatter brFormatter = new BinaryFormatter(); Object obj = brFormatter.Deserialize(memStream); return obj; / / 解密配置文件并读入到xmldoc中 / public static XmlNode DecryptConfigFile(string filePath) FileStream fs = new FileStream(filePath, FileMode.Open); XmlDocument m_XmlDoc = new XmlDocument(); BinaryFormatter formatter = null; try formatter = new BinaryFormatter(); / Deserialize the hashtable from the file and / assign the reference to the local variable. m_XmlDoc.LoadXml(KCEncrypt.Decrypt(string)formatter.Deserialize(fs); return m_XmlDoc.DocumentElement; catch (SerializationException e) Console.WriteLine(Failed to deserialize. Reason: + e.Message); throw; finally fs.Close(); fs = null; / / 加密密钥后再对文件字符进行加密 / public static void EncryptConfigFile(string filePath, string str) FileStream fs = new FileStrea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件中插入AVI格式视频的方法
- 2025年彩票公司财务经理面试题库及答案
- 2025年航空乘务员专业技能考核试题及答案解析
- 2025年大学生安全常识测试题
- 机电知识培训的目的和意义
- 2025年宠物摄影摄像师高级面试常见问题集锦
- 2025年安全管理C卷模拟测试题解析
- 2025年农村扶贫助理招聘面试题及答案解析
- 学校教学常规检查课件
- 机电服务顾问基础知识培训课件
- 2025年生猪屠宰检疫竞赛题库
- 2025年广西公需科目答案02
- 小学教育教学工作计划范文(5篇)
- 汽轮机汽封系统
- 《大随求陀罗尼》罗马拼音与汉字对照版
- 中国人健康大数据2023年
- 职工医疗互助保障计划、女职工安康互助保障计划互助金申请表
- 宾馆饭店消防安全排查整治标准
- GB 16869-2005鲜、冻禽产品
- 材料科学基础(全套429张课件)
- 整机部整机出货检验重点标准
评论
0/150
提交评论