FileStream文件操作
2024-01-08 22:09:21
文件操作
序列化是将对象转换为可存储或传输的格式的过程。在.NET Framework中,序列化可以将对象转换为XML、二进制或其他格式,以便在网络上传输或存储在文件系统中。
在.NET Framework中,有几种序列化方式可供选择,包括二进制序列化、XML序列化和JSON序列化。以下是.NET Framework中常用的序列化类:
BinaryFormatter
:将对象序列化为二进制格式。
XmlSerializer
:将对象序列化为XML格式。
DataContractSerializer
:将对象序列化为XML格式,并支持对数据进行版本控制。
JsonSerializer
:将对象序列化为JSON格式。
序列化一般需要两个步骤:
- 将一个对象序列化为相应格式的流(如二进制流、XML流等)。
- 将序列化后的流写入到文件或通过网络传输给另一个应用程序。
我们来创建一个winform窗体,拖出下图示例的控件?
不使用序列化存
private void button4_Click(object sender, EventArgs e) {
//封装数据(数据一条一条的存储,这不属于面向对象编程的思想)
Student student = new Student() {
Name = this.name.Text.Trim(),
Sex = this.sex.Text.Trim(),
Age = this.age.Text.Trim(),
Brith = Convert.ToDateTime(this.dtpBirth.Text)
};
//执行本地存储
FileStream fs = new FileStream(@"D:\WinForms\文件操作(序列化)\学生信息.txt", FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(student.Name);
sw.WriteLine(student.Age);
sw.WriteLine(student.Sex);
sw.WriteLine(student.Brith);
sw.Close();
fs.Close();
MessageBox.Show("存储学生信息成功");
}
不使用序列化取
private void button3_Click(object sender, EventArgs e) {
FileStream fs = new FileStream(@"D:\WinForms\文件操作(序列化)\学生信息.txt", FileMode.OpenOrCreate);
StreamReader sr = new StreamReader(fs);
//一行一行读
Student student = new Student() {
Name = sr.ReadLine(),
Age = sr.ReadLine(),
Sex = sr.ReadLine(),
Brith = Convert.ToDateTime(sr.ReadLine())
};
sr.Close();
fs.Close();
//显示
MessageBox.Show($"{student.Name}:{student.Age}:{student.Sex}:{student.Brith}");
}
使用序列化存
private void button1_Click(object sender, EventArgs e) {
Student student = new Student() {
Name = this.name.Text.Trim(),
Sex = this.sex.Text.Trim(),
Age = this.age.Text.Trim(),
Brith = Convert.ToDateTime(this.dtpBirth.Text)
};
FileStream fs = new FileStream(@"D:\WinForms\文件操作(序列化)\学生信息2.txt", FileMode.OpenOrCreate);
//创建二进制格式化器
BinaryFormatter bf = new BinaryFormatter();
//调用序列化方法
bf.Serialize(fs, student);
//关闭流
fs.Close();
MessageBox.Show("存储学生成功");
}
使用序列化取
private void button2_Click(object sender, EventArgs e) {
FileStream fs = new FileStream(@"D:\WinForms\文件操作(序列化)\学生信息2.txt", FileMode.OpenOrCreate);
//创建二进制格式化器
BinaryFormatter bf = new BinaryFormatter();
Student student = bf.Deserialize(fs) as Student;
//关闭流
MessageBox.Show($"{student.Name}:{student.Age}:{student.Sex}:{student.Brith}");
}
文章来源:https://blog.csdn.net/qq_51810680/article/details/135465636
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!