作者: 黑马田杰 时间: 2013-4-17 10:46
using (FileStream fs=new FileStream ("person.bin",FileMode.Open ))
文件流改为可读可写的试试。作者: 梁思思 时间: 2013-4-17 10:52
正好有讲到序列化和反序列哈,有个例子,你看下
Person类如下:
[Serializable]
public class Person
{
public string Name
{
get;
set;
}
public int Age
{
get;
set;
}
public char Gender
{
get;
set;
}
}
序列化就是将一个对象转换为二进制
反序列化就是将二进制转换为对象
为什么要序列化? 传输数据
Person per = new Person();
per.Name = "张三";
per.Age = 10;
per.Gender = '男';
//序列化:将对象转换为二进制
using (FileStream fs = new FileStream(@"C:\Users\ZhaoJY\Desktop\1.txt", FileMode.Open, FileAccess.Write))
{
//2、创建序列化对象
BinaryFormatter bf = new BinaryFormatter();
//3、调用序列化对象的序列化方法
bf.Serialize(fs, per);
}
Console.WriteLine("序列化成功");
Console.ReadKey();
以上为序列化
下面是反序列化:
//反序列化
Person per;
using (FileStream fs = new FileStream(@"C:\Users\ZhaoJY\Desktop\1.txt", FileMode.Open, FileAccess.Read))
{
//1、创建反序列化对象
BinaryFormatter bf = new BinaryFormatter();
per = (Person)bf.Deserialize(fs);
}
Console.WriteLine(per.Name);
Console.WriteLine(per.Age);
Console.WriteLine(per.Gender);
Console.ReadKey();