您的位置:首页 > 编程语言 > C#

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: