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 @   压力小子の抗压日记  阅读(89)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示