您的位置:首页 > 其它

记录:文件的读写

2013-09-10 15:23 323 查看
对象就是主体当前所关注的事物。类和结构实际上都是创建对象的模板,每个对象都包含数据,并提供处理和访问数据的方法。
当然,我们都希望所关注的事物存储的时间能久一些,我们在设计程序和运行程序的过程中,当运行程序的时候,对象就没了,那么我们怎么样才能使它存储得久一些?持久化就是可以将内存中的对象存储到可以永久保存的存储设备中(如磁盘,文件或流)的一种手段,通常需要持久化的都是实体的对象。我们对文件进行读写通常有三种方式:文件流读写、XML文档读写、序列化与反序列化,这三种读写方式各有千秋。。。。。。
文件流读写一般都是用StreamReader中的ReadLine()和SteamWriter中的WriteLine()来实现;
XML文档一般都是通过文档中的Load()方法来加载,还通过其中的一些类:XmlElenment、XmlAttribute、XmlNode等的方法来实现;
持久化主要是序列化合反序列化:
序列化过程
1.将实体类设置为可以序列化。
2.创建实体类对象。
3.创建序列化工具对象。
4.创建文件流(应该要写入)
5.序列化。
6.清理序列化过程中的资源。
反序列化过程
1.创建序列化工具对象。
2.创建文件流(应该要读取)
3.反序列化。
4.清理序列化过程中的资源。
BinaryFormatter: 使用二进制序列化方式序列化的内容,只能在.net平台中读取和写入。
Xml序列化方式可以在多个技术平台之间共享数据。
Xml序列化方式要求,类必须是公开类。
下面来看一个简单的例子:

namespace prjIOtest6
{
[Serializable]//将实体类设置为可以序列化
class Card:IComparable<Card>
{
string name;
public string Name
{
*****:第一步:这是必须的,设置好了以后才能开始序列化和反序列化。

Card card = new Card();//创建一个对象
card.Name = "dongjing";
card.Phone = "15191143820";
card.Qq = "1234564556";
card.Email = "yddongjingjing@163.com";
card.Address = "陕西咸阳武功";
BinaryFormatter bf = new BinaryFormatter();//创建序列化工具对象
FileStream fs = new FileStream("test.dat", FileMode.Create);//创建流,用来写入
bf.Serialize(fs, card);//序列化
fs.Flush();
fs.Close();
第二步:序列化过程

BinaryFormatter bf = new BinaryFormatter();
FileStream fs = new FileStream("test.dat", FileMode.Open);//创建流,用来读取
object obj = bf.Deserialize(fs);//反序列化
Card card = (Card)obj;//将object类型强制转化为Card类型
Console.WriteLine(card);
fs.Close();
第三步:反序列化
上面就是持久化的整个过程。
P.S: as用来做类型转换(as前面用Object,后面用引用类型)
is用来判断对象是否是某种类型
typeof用来获得某个对象的类的Type对象。
位运算符:& | ^ ~ >> <<
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息