搜索内容

有一个问题?

如果您有任何疑问,可以在下面询问或输入您要寻找的!

C#学习笔记-序列化和反序列化文件操作

生成海报
Sr-浮生
Sr-浮生 2021-01-24 18:29
阅读需:0

程序流程中,实例化储存数据信息(小),会出现数据加密功效。

文档的实例化实际操作(对于dao层)

1.对dao层加上实例化标识[Serializable]

    /// 
    /// 学员的dao层
    /// 
    [Serializable]
    public class StudentModel
    {
        public  string StuName { get; set; }
        public  string Sex { get; set; }
        public int Age { get; set; }
    }

2.加上System.Runtime.Serialization.Formatters.Binary,using System.IO;引入

3.实例化实际操作

       private void btnSerialize_Click(object sender, EventArgs e)
        {
            //1、创建文件流        
            FileStream fs=new FileStream("Student.stu", FileMode.Create);         
            //2、建立二进制恢复出厂设置目标
            BinaryFormatter formatter = new BinaryFormatter();
            //3、实行实例化的方式
            formatter.Serialize(fs,studentList);
            //4.关掉文件流
            fs.Close();
        }

4.反序列化实际操作

        private void btnDeserialize_Click(object sender, EventArgs e)
        {
            string path = Application.StartupPath + "\\student.stu";
            if (!File.Exists(path))
            {
                MessageBox.Show("未加上数据库文件,请加上数据信息", "提醒");
                return;
            }
            //1.创建文件流
            FileStream fs = new FileStream(path, FileMode.Open);
            //2.建立二进制恢复出厂设置目标
            BinaryFormatter formatter = new BinaryFormatter();
            //3.实行反序列化方式
            studentList = (List)formatter.Deserialize(fs);
            //4.关掉文件流
            fs.Close();
            //5.表明数据信息
            dgvStudentList.DataSource = null;
            dgvStudentList.DataSource = studentList;
        }

加上目标的code

      private void btnAdd_Click(object sender, EventArgs e)
        {
            #region 数据信息校检
            //数据信息校检
            if (txtName.Text.Trim().Length==0)
            {
                MessageBox.Show("输入您学员名字", "提醒");
                return;
            }
            if (txtAge.Text.Trim().Length == 0)
            {
                MessageBox.Show("输入您学员年纪", "提醒");
                return;
            }
            if(!(cbbSex.Text.Trim()=="男"||cbbSex.Text.Trim() == "女"))
            {
                MessageBox.Show("键入的性別不正确", "提醒");
                return;
            }
            #endregion
            //封裝学员目标
            StudentModel student = new StudentModel
            {
                StuName = txtName.Text.Trim(),
                Sex=cbbSex.Text.Trim(),
                Age=Convert.ToInt32(txtAge.Text.Trim())
            };
            studentList.Insert(0,student);
            dgvStudentList.DataSource = null;
            dgvStudentList.DataSource = studentList;
        }

详细Demo连接:https://download.csdn.net/download/qq_39157152/14927570

评论
  • 消灭零回复