C#学习笔记之对象和二进制之间的转换
2016-05-30 09:55
471 查看
<span style="font-size:18px;">using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Runtime.Serialization.Formatters.Binary; namespace 类的序列化和反序列化 { class Program { static void Main(string[] args) { // 序列化:将对象转换成二进制 // 反序列化:将二进制转换成对象 // 作用:对象的传输 // 将一个类标记为可以序列化,在类的头上写上[Serializable] // 1、将对象序列化成二进制,并写入文件。 Persion p = new Persion("张三", '男', 22); // 用指定的文件实例化一个写入文件流对象。 using (FileStream fsWrite = new FileStream(@"D:\22.txt", FileMode.OpenOrCreate, FileAccess.Write)) { // 以二进制形式将对象序列化或反序列化 BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(fsWrite, p); // 序列化:将对象以二进制形式写入文件 } Console.WriteLine("序列化成功"); Console.WriteLine("\r\n********华丽的分割线*******\r\n"); // 2、将二进制文件读取出来并反序列化成对象。 Persion pp = null; using (FileStream fsRead = new FileStream(@"D:\22.txt", FileMode.OpenOrCreate, FileAccess.Read)) { BinaryFormatter bff = new BinaryFormatter(); // 反序列化:将对象以二进制形式从文件中读取,然后转换成对象 pp = (Persion)bff.Deserialize(fsRead); } Console.WriteLine(pp.Name); Console.WriteLine(pp.Sex); Console.WriteLine(pp.Age); Console.WriteLine("反序列化成功"); Console.ReadKey(); } } [Serializable] // 标记一个类可以被序列化 public class Persion { public string Name { get; set; } public char Sex { get; set; } public int Age { get; set; } public Persion(string name, char sex, int age) { this.Name = name; this.Sex = sex; this.Age = age; } } } </span>
相关文章推荐
- C#学习笔记之简单工厂设计模式
- C#学习笔记之多态之接口
- C#学习笔记之多态之抽象类
- C#学习笔记之多态之虚方法
- CityMaker学习教程07 示例代码的使用CSharp
- C# 读取Text文本,写入Text文本
- C#学习笔记之对象和Xml文档之间的转换
- LeetCode #14 Longest Common Prefix C# Solution
- C# 实现拖拉控件改变位置与大小
- 6.枚举
- C#-DataTable分页代码
- HyperLinkField和 DataNavigateUrlFields的使用方法
- c#中的扩展方法
- c#上传文件到服务器
- c#下载文件的几种方式
- Quartz.NET c# 教程 - 课程五:SimpleTrigger
- C#中的数组应用
- .net中的命名管道(NamedPipe)
- C#之反射
- C#中基于FileStream的文本文件读写操作