using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
//运行的时候,序列化--格式化器里面的-2进制类命名空间
namespace 对象的序列化与反序列化
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
Student student = new Student()
{
Name = textBox1.Text.Trim(),
Age = Convert.ToInt32(textBox2.Text.Trim()),
Birthday = Convert.ToDateTime(textBox3.Text)
};
FileStream fs = new FileStream(@"D:\用户目录\Desktop\2.txt", FileMode.Create);
BinaryFormatter bf = new BinaryFormatter(); //创建2进制格式化器
bf.Serialize(fs,student);
fs.Close();
//StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);
//sw.WriteLine(student.Name);
//sw.WriteLine(student.Age);
//sw.WriteLine(student.Birthday);
//sw.Close();
//fs.Close();
//MessageBox.Show("成功写入");
}
private void button2_Click(object sender, EventArgs e)
{
FileStream fs = new FileStream(@"D:\用户目录\Desktop\2.txt", FileMode.Open);
BinaryFormatter bf = new BinaryFormatter();//定义了一个二进制格式化器
Student student = (Student)bf.Deserialize(fs);//将文件对象fs的用二进制格式化器反序列化;因为反序列化之后的对象是Object类型的,在这里将他强制类型转换为Student类型
textBox1.Text = student.Name;
textBox2.Text = student.Age.ToString();
textBox4.Text = student.Birthday.ToString();
fs.Close();
// StreamReader sr = new StreamReader(fs);
//textBox1.Text=sr.ReadLine();
//textBox2.Text = sr.ReadLine();
//textBox3.Text = sr.ReadLine();
// sr.Close();
// fs.Close();
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
//运行的时候,序列化--格式化器里面的-2进制类命名空间
namespace 对象的序列化与反序列化
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
Student student = new Student()
{
Name = textBox1.Text.Trim(),
Age = Convert.ToInt32(textBox2.Text.Trim()),
Birthday = Convert.ToDateTime(textBox3.Text)
};
FileStream fs = new FileStream(@"D:\用户目录\Desktop\2.txt", FileMode.Create);
BinaryFormatter bf = new BinaryFormatter(); //创建2进制格式化器
bf.Serialize(fs,student);
fs.Close();
//StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);
//sw.WriteLine(student.Name);
//sw.WriteLine(student.Age);
//sw.WriteLine(student.Birthday);
//sw.Close();
//fs.Close();
//MessageBox.Show("成功写入");
}
private void button2_Click(object sender, EventArgs e)
{
FileStream fs = new FileStream(@"D:\用户目录\Desktop\2.txt", FileMode.Open);
BinaryFormatter bf = new BinaryFormatter();//定义了一个二进制格式化器
Student student = (Student)bf.Deserialize(fs);//将文件对象fs的用二进制格式化器反序列化;因为反序列化之后的对象是Object类型的,在这里将他强制类型转换为Student类型
textBox1.Text = student.Name;
textBox2.Text = student.Age.ToString();
textBox4.Text = student.Birthday.ToString();
fs.Close();
// StreamReader sr = new StreamReader(fs);
//textBox1.Text=sr.ReadLine();
//textBox2.Text = sr.ReadLine();
//textBox3.Text = sr.ReadLine();
// sr.Close();
// fs.Close();
}
}
}
---------------------------------添加类 的代码-------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 对象的序列化与反序列化
{
[Serializable]
class Student
{
public string Name
{
get;
set;
}
public int Age
{
get;
set;
}
public DateTime Birthday
{
get;
set;
}
}
}