对象序列化与反序列化

我们常常需要将一些程序当前信息保存在文件中,如果明文保存,那么信息不安全,使用对象序列化和反序列化可解决此问题


1、将需要保存的信息封装成类,用Serializable标记


    [Serializable]//次标记必须,以声明此student类可执行序列化操作
    class Student
    {
        public string Name { get; set; }
        public string Gender { get; set; }
        public int Age { get; set; }
        public DateTime Birthday { get; set; }
    }

2、序列化操作

   
            Student objStu = new Student()
            {
                Name = this.txtName.Text.Trim(),
                Age = Convert.ToInt16(this.txtAge.Text.Trim()),
                Gender = this.txtGender.Text.Trim(),
                Birthday = Convert.ToDateTime(this.txtBirthday.Text.Trim())
            };
            //【1】创建文件流
            FileStream fs = new FileStream("C:\\objStu.obj", FileMode.Create);
            //【2】创建二进制格式化器
            BinaryFormatter formatter = new BinaryFormatter();
            //【3】调用序列化方法
            formatter.Serialize(fs, objStu);
            //【4】关闭文件流
            fs.Close();


3、反序列化

        //【1】创建文件流
            FileStream fs = new FileStream("C:\\objStu.obj", FileMode.Open);
            //【2】创建二进制格式化器
            BinaryFormatter formatter = new BinaryFormatter();
            //【3】调用序列化方法
            Student objStu = (Student)formatter.Deserialize(fs);
            //【4】关闭文件流
            fs.Close();
            //显示对象属性
            this.txtName.Text = objStu.Name;
            this.txtAge.Text = objStu.Age.ToString();
            this.txtGender.Text = objStu.Gender;
            this.txtBirthday.Text = objStu.Birthday.ToShortDateString();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值