C#对象序列化和反序列化

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;

namespace 接口
{
    public enum Gender
    {
        female,
        male
    }
    class Program
    {
        static void Main(string[] args)
        {
            
            //使用输入输出流将序列化后的对象保存到文件中

            using (FileStream fsWriter = new FileStream(@"C:\Users\htao\Desktop\new.txt", FileMode.OpenOrCreate, FileAccess.Write))
            {
                Person p = new Person("张三", 18, Gender.male);
                BinaryFormatter bf = new BinaryFormatter();
                try
                {
                    bf.Serialize(fsWriter, p);//将Person对象序列化
                }
                catch
                {
                    Console.WriteLine("序列化失败");
                }


            }
            Console.WriteLine("序列化成功");
            Person p = null;
            using (FileStream fsReader = new FileStream(@"C:\Users\htao\Desktop\new.txt", FileMode.OpenOrCreate, FileAccess.Read))
            {
                BinaryFormatter bf = new BinaryFormatter();
                p = (Person)bf.Deserialize(fsReader);
                Console.WriteLine("姓名:{0},年龄:{1},性别:{2}", p.Name, p.Age, p.Gender);
            }
            Console.ReadKey();
        }
    }
    [Serializable]
    public class Person
    {
        private string _name;

        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        private int _age;

        public int Age
        {
            get { return _age; }
            set { _age = value; }
        }

        private Gender _gender;

        public Gender Gender
        {
            get { return _gender; }
            set { _gender = value; }
        }
        public Person(string name, int age, Gender gender)
        {
            this.Name = name;
            this.Age = age;
            this.Gender = gender;
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/ww7018/p/9210635.html