C# 序列化和反序列化

(一)序列化

1、对象序列化标识

//在序列化前需要先将类标记

[Serializable]//对象可序列化标记
class Student
{
public string Name { get; set; }

public string Gender { get; set; }

public int Age { get; set; }

public DateTime Birtheday { get; set; }
}

2、引入两个命名空间

using System.IO;

using System.Runtime.Serialization.Formatter.Binary; //runtime

 

3、(一)使用二进制格式化器

//【1】创建文件流
FileStream fs = new FileStream("objStudent.stu", FileMode.Create);
//【2】创建二进制格式化器
BinaryFormatter formatter = new BinaryFormatter();
//【3】调用序列化方法
formatter.Serialize(fs, objStudent);
//【4】关闭文件流
fs.Close();

 new一个二进制格式化器后,调用Serialize 传入 ( 文件流, 对象 )

 随后关闭文件流

使用二进制格式化器,生成的是二进制信息

 

(二)反序列化

//【1】创建文件流
FileStream fs = new FileStream("objStudent.stu", FileMode.Open);
//【2】创建二进制格式化器
BinaryFormatter formatter = new BinaryFormatter();
//【3】调用反序列方法
Student objStudent = (Student)formatter.Deserialize(fs);
//【4】关闭文件流
fs.Close();

 流程和序列化大差不差,,先 创建文件流(读取对象) → new一个 格式化器 → (重点) 调用反序列方法时 要进行强转 

 

总结:

 

posted @ 2023-05-14 23:38  压力小子の抗压日记  阅读(60)  评论(0编辑  收藏  举报