序列化和反序列化
1.序列化
- 概念:
序列化:就是将对象转化成二进制。
- 序列化步骤:
- 在类前加上[Serializable],指示一个类可以序列化。
- 创建序列化对象 BinaryFormatter
- 调用Serialize 序列化
//创建类:
[Serializable]//将类标记为可序列化
public class Person
{
private string _name;
private char _gender;
private int _age;
public string Name { get => _name; set => _name = value; }
public char Gender { get => _gender; set => _gender = value; }
public int Age { get => _age; set => _age = value; }
}
//主函数的操作:
Person p = new Person();
p.Name = "张三";
p.Age = 18;
p.Gender = '男';
using (FileStream fsWrite = new FileStream(@"C:\Users\hp\Desktop\1.txt",FileMode.OpenOrCreate, FileAccess.Write))
{
//序列化对象
BinaryFormatter f = new BinaryFormatter();
f.Serialize(fsWrite, p); //serialize(文件流,对象名)
}
2.反序列化
- 概念:
反序列化: 就是将二进制转换成对象。
- 反序列化的步骤:
- 在类前加上[Serializable],指示一个类可以序列化。
- 创建序列化对象 BinaryFormatter
- 调用Serialize 序列化
//创建类:
[Serializable]//将类标记为可序列化
public class Person
{
private string _name;
private char _gender;
private int _age;
public string Name { get => _name; set => _name = value; }
public char Gender { get => _gender; set => _gender = value; }
public int Age { get => _age; set => _age = value; }
}
//主函数的操作:
Person p = new Person();
p.Name = "张三";
p.Age = 18;
p.Gender = '男';
using (FileStream fsWrite = new FileStream(@"C:\Users\hp\Desktop\1.txt",FileMode.OpenOrCreate, FileAccess.Write))
{
//序列化对象
BinaryFormatter f = new BinaryFormatter();
f.Serialize(fsWrite, p); //serialize(文件流,对象名)
}
3.序列化和反序列化的用途
一般用于传输数据