• 文件写入补充(序列化对象写入)


    student类必须标记序列化

    using System;
    using System.Collections.Generic;
    using System.Text;
    namespace TextFile
    {
        [Serializable]
        class Student
        {
            public string Name { get; set; }
            public string Gender { get; set; }
            public int Age { get; set; }
            public DateTime Birthday { get; set; }
        }
    }

     主程序代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    //引入命名空间
    using System.IO;
    using System.Runtime.Serialization.Formatters.Binary;
    namespace TextFile
    {
        public partial class FrmFile : Form
        {
            public FrmFile()
            {
                InitializeComponent();
            }
            private void btnSave_Click(object sender, EventArgs e)
            {
                //封装对象信息
                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())
                };
                //保存到文本文件
                FileStream fs = new FileStream("C:\objStu.obj", FileMode.Create);
                StreamWriter sw = new StreamWriter(fs);
                //一行一行写入文本
                sw.WriteLine(objStu.Name);
                sw.WriteLine(objStu.Age);
                sw.WriteLine(objStu.Gender);
                sw.WriteLine(objStu.Birthday.ToShortDateString());
                //关闭文件流和写入器
                sw.Close();
                fs.Close();
            }
            private void btnRead_Click(object sender, EventArgs e)
            {
                FileStream fs = new FileStream("C:\objStu.obj", FileMode.Open);
                StreamReader sr = new StreamReader(fs);
                //一行一行读取
                Student objStu = new Student()
                {
                    Name = sr.ReadLine(),
                    Age = Convert.ToInt16(sr.ReadLine()),
                    Gender = sr.ReadLine(),
                    Birthday = Convert.ToDateTime(sr.ReadLine())
                };
                sr.Close();
                fs.Close();
                this.txtName.Text = objStu.Name;
                this.txtAge.Text = objStu.Age.ToString();
                this.txtGender.Text = objStu.Gender;
                this.txtBirthday.Text = objStu.Birthday.ToShortDateString();
            }
            private void btnSerialize_Click(object sender, EventArgs e)
            {
                //封装对象信息
                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();
                
            }
            private void btnDeserialize_Click(object sender, EventArgs e)
            {
                //【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();
            }
        }
    }
  • 相关阅读:
    HBase 操作
    HBase Java API 例子
    微信浏览器拖动出现黑色/白色背景、网址问题解决方案
    layui弹出层置顶弹出
    使用layui时,ajax执行后,重新渲染页面的方法
    宝塔更新
    js 播放音频文件 兼容火狐 谷歌浏览器
    SAP断点
    error_log 用法
    SE开头的事务代码
  • 原文地址:https://www.cnblogs.com/superMay/p/4108269.html
Copyright © 2020-2023  润新知