您的位置:首页 > 其它

文件的读写

2013-09-07 15:19 183 查看


我的将军是这么跟我解释对象的,他说对象就是主体当前所关注的事物。人们总有个习惯,尤其是女孩子,喜欢收集一些小玩意儿,比如首饰,比如袜子,再比如包包,所有美好的事物我们都希望能永久的保存下来。其实在我们设计程序以及实现程序的过程中吧,对象也特别的友好,但是却每次在按下Ctrl+F5的时候就给他灭了,那么我们也可以持久化让对象存在的时间久一点。持久化就是讲对象储存在某些介质中,将内存中的对象保存在文件或流中,通常需要持久化的都是实体类的对象。我们对文件进行读写通常有三种方法:文件流读写,XML文档读写,还有就是序列化与反序列化,三种方法各有千秋。使用文件流读写一般都采用StreamReader和StreamWriter里面的ReadLine()和WriteLine()方法直接进行读写。XML文档主要是利用文档中的Load方法来加载,XmlNode,XmlDeclaration等类中的对象方法来实现。最后我们也可以用序列的方式实现对文件的读写过程,具体步骤如下:

序列化过程
1.将实体类设置为可以序列化。
2.创建实体类对象。
3.创建序列化工具对象。
4.创建文件流(应该要写入)
5.序列化。
6.清理序列化过程中的资源。
反序列化过程
1.创建序列化工具对象。
2.创建文件流(应该要读取)
3.反序列化。
4.清理序列化过程中的资源。

BinaryFormatter
使用二进制序列化方式序列化的内容,只能在.net平台中读取和写入。
Xml序列化方式可以在多个技术平台之间共享数据。
Xml序列化方式要求,类必须是公开类。
下面用一个简单的例子来说明一下:



这是第一步:将实体类设置为可以序列化

Card card = new Card();//实例化一个对象
card.Name = "啊利";
card.Phone = "13391143820";
card.Qq = "145282812";
card.Email = "145282812@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);//反序列化
//List<Card> list = (List<Card>)obj;
List<Card> list = obj as List<Card>;//将obj强转成Card对象
foreach (Card x in list)
{
Console.WriteLine(x);
}
fs.Close();
这个是反序列化过程。用这种方法读写文件非常方便。比较推荐。
P.S:as用来做类型转换(as之前是onject类型,as之后是引用类型的)
is用来判断对象是否是某种类型
typeof用来获得某个对象的类的Type对象。


Ajax的姑娘,加油啦!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息