文件的读写

  我的将军是这么跟我解释对象的,他说对象就是主体当前所关注的事物。人们总有个习惯,尤其是女孩子,喜欢收集一些小玩意儿,比如首饰,比如袜子,再比如包包,所有美好的事物我们都希望能永久的保存下来。其实在我们设计程序以及实现程序的过程中吧,对象也特别的友好,但是却每次在按下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 = "[email protected]";
           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的姑娘,加油啦!    

本文出自 “Ajax的姑娘” 博客,谢绝转载!

你可能感兴趣的:(设计程序,友好,女孩子,玩意儿,具体步骤)