序列化:就是将对象转换为二进制(将这个类标记为可以被序列化的。)
反序列化:就是将二进制转换为对象
作用:传输数据。
序列化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
static void Main(string[] args) { *******************序列化**************** Preson people = new Preson("李四", 19); people.Name = "张三"; people.Age = 16; people.Pname(); using (FileStream file = new FileStream(@"C:\Users\Administrator\Desktop\111.txt", FileMode.OpenOrCreate, FileAccess.Write)) { BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(file, people); } Console.WriteLine("序列化成功"); Console.ReadKey(); **********************反序列化************ using (FileStream fs=new FileStream(@"C:\Users\Administrator\Desktop\111.txt",FileMode.OpenOrCreate,FileAccess.Read)) { Preson p; BinaryFormatter bf = new BinaryFormatter(); p=(Preson)bf.Deserialize(fs);//要返回一个preson类型所以要强转为preson Console.WriteLine(p.Name); Console.WriteLine(p.Age); Console.ReadKey(); } } [Serializable]//把类标注为为可序列化 public class Preson { private string _name; public string Name { get { return _name; } set { _name = value; } } private int _age; public int Age { get { return _age; } set { _age = value; } } public Preson(string name, int age) { this.Name = name; this.Age = age; } public void Pname() { Console.WriteLine("姓名是{0},年龄是{1}", this.Name, this.Age); } } |