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一个 格式化器 → (重点) 调用反序列方法时 要进行强转
总结: