C#序列化/反序列化对象.将对象写入文件,从文件读取对象.
来源:互联网 发布:手机进销存软件免费版 编辑:程序博客网 时间:2024/05/16 16:00
using System;using System.Collections.Generic;using System.Text;using System.Runtime.Serialization.Formatters.Binary;using System.IO;using System.IO.Compression;using System.Windows.Forms;namespace Vjsdn_Tester{ public class TestZipObject { /// /// 测试简单序列化/反序列化对象 /// public void Test() { SerilizabledObject obj = new SerilizabledObject(); byte[] bs = ZipObject.CompressionObject(obj); object o = ZipObject.DecompressionObject(bs); //还原,ok MessageBox.Show((o as SerilizabledObject).getName()); } /// /// 序列化对象,将对象写入文件,然后还原. /// public void TestReadWriteFile() { SerilizabledObject obj = new SerilizabledObject(); byte[] bs = ZipObject.CompressionObject(obj); //将数组写入文件 Stream writer = new FileStream("E://test.shape", FileMode.Create, FileAccess.Write, FileShare.Write); writer.Write(bs, 0, bs.Length); writer.Flush(); writer.Close(); //读取文件,先写入数组,再从数组转换为对象.Easy! FileStream fs = File.Open("E://test.shape", FileMode.Open); byte[] bss = new byte[fs.Length]; int i = fs.Read(bss, 0, (int)fs.Length); object o = ZipObject.DecompressionObject(bss); //还原,ok MessageBox.Show((o as SerilizabledObject).getName()); } } /// /// 测试用对象 /// [Serializable] public class SerilizabledObject { string id = "id001"; string name = "www.vjsdn.com"; public SerilizabledObject() { } public string getName() { return this.name; } } /// /// 压缩解压object /// public class ZipObject { #region 压缩解压object public static byte[] CompressionObject(object DataOriginal) { if (DataOriginal == null) return null; BinaryFormatter bFormatter = new BinaryFormatter(); MemoryStream mStream = new MemoryStream(); bFormatter.Serialize(mStream, DataOriginal); byte[] bytes = mStream.ToArray(); MemoryStream oStream = new MemoryStream(); DeflateStream zipStream = new DeflateStream(oStream, CompressionMode.Compress); zipStream.Write(bytes, 0, bytes.Length); zipStream.Flush(); zipStream.Close(); return oStream.ToArray(); } public static object DecompressionObject(byte[] bytes) { if (bytes == null) return null; MemoryStream mStream = new MemoryStream(bytes); mStream.Seek(0, SeekOrigin.Begin); DeflateStream unZipStream = new DeflateStream(mStream, CompressionMode.Decompress, true); object dsResult = null; BinaryFormatter bFormatter = new BinaryFormatter(); dsResult = (object)bFormatter.Deserialize(unZipStream); return dsResult; } #endregion }}测试代码:private void button7_Click(object sender, EventArgs e){ new TestZipObject().Test(); // 测试简单序列化/反序列化对象 new TestZipObject().TestReadWriteFile(); // 序列化对象,将对象写入文件,然后还原. }
- C#序列化/反序列化对象.将对象写入文件,从文件读取对象.
- 将java的对象序列化成文件,并从文件中反序列化。
- 序列化对象为xml文件,将xml文件反序列化为对象
- 序列化反序列化对象XML文件写入Sample,简单但是有代表性
- Java 对象直接写入文件 --序列化和反序列化
- C#序列、反序列化json对象
- C#读取XML文件,反序列化为指定对象
- C#对象反序列化与对象序列化
- C#中xml文件和对象的序列化与反序列化
- 序列化写入一个文件---反序列读取并保存
- 将对象序列化和反序列化
- [Java] Java序列化将一个对象的内容保存到文件和从文件读取对象
- 序列化对象为xml,从xml反序列化
- python将对象写入文件,以及从文件中读取对象
- android将对象写入文件和从文件中读取对象数据
- C#对象的 Xml序列化与反序列化
- C#中的快速序列化和反序列化对象
- C#中对象的序列化与反序列化
- mysql 创建函数的1418错误解决方案
- 麦考林浦思捷:现在是做电子商务最好时候
- 关于请求游览器缓存
- 卡尔.波普尔摘要: 宽容, 冲突, 以及多元论
- C#实现IVR(基于东进的语音卡)-2
- C#序列化/反序列化对象.将对象写入文件,从文件读取对象.
- 想读博士我看好武汉大学!
- canon佳能ip1000/1200/1600 废弃墨水吸收器已满解决办法(有效)
- 父爱与母爱的区别
- C#实现IVR(基于东进的语音卡)-3
- Apache + MOD_JK + TOMCAT实现集群和负载均衡配置指南
- LINQ傻瓜教学之一:新增dbml文件和基本的增加删除和修改记录
- C#实现IVR(基于东进的语音卡)-4
- 2440中文手册