System.IO学习归纳

        Systemo.IO命名空间在MSDN上的解释是:System.IO 命名空间包含允许读写文件和数据流的类型以及提供基本文件和目录支持的类型。这里主要介绍关于读写文件和数据流的相关类型。

        1.File类:主要是提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream 对象。由于所有的 File 方法都是静态的,所以如果只想执行一个操作,那么使用 File 方法的效率比使用相应的 FileInfo 实例方法可能更高。所有的 File 方法都要求当前所操作的文件的路径,可以看到在File的所有方法中第一个参数都是string path。File 类的静态方法对所有方法都执行安全检查。如果打算多次重用某个对象,可考虑改用 FileInfo 的相应实例方法,因为并不总是需要安全检查。(疑惑:这里的安全类型检查指的是什么类型的安全检查)。

        2.FileInfo类,上面已经提到了,FileInfo对于文件的操作是使用成员方法,因此在使用之前先进行实例化。此外FileInfo还包含着文件的相关信息,如文件的创建时间,大小,名称等等。

        3.Stream类:Stream 是所有流的抽象基类。流是字节序列的抽象概念,例如文件、输入/输出设备FileStream、内部进程通信管道MemoryStream或者 TCP/IP 套接字NetworkStream。Stream 类及其派生类提供这些不同类型的输入和输出的一般视图,使程序员不必了解操作系统和基础设备的具体细节。我们通常是将数据放入到继承自Stream类的,如读取文件的时候将文件的数据放入到FileStream。

        4.对于从流中读取数据和写入数据我们就需要借助到以下的类。StreamReader,StreamWriter(以某种特定的编码将字符写入流中),BinaryReader,BinaryWriter(以二进制的形式写入流中).

        附录:代码:

View Code
1 public void Example()
2 {
3 string path = "D:/临时备份/PersonalLearnDemo/WuxqHelper/TextFile1.txt";
4 //向文件追加文本
5 using (StreamWriter writer = File.AppendText(path))
6 {
7 writer.WriteLine("test text 中文测试");
8 writer.Flush();
9 }
10 //从文件中读取字符串
11 using (StreamReader reader = File.OpenText(path))
12 {
13
14 Console.WriteLine(reader.ReadToEnd());
15 }
16 //使用另外一种方法实现从流中读取字符串,这种方法有待探讨
17 using (FileStream fileStream = File.Open(path, FileMode.Open))
18 {
19 byte[] byteArray = new byte[fileStream.Length];
20 fileStream.Read(byteArray, 0, (int)fileStream.Length);//当文件大于64mb时会出错
21 Console.WriteLine(Encoding.UTF8.GetString(byteArray));
22 }
23
24 }
posted @ 2011-03-18 17:53  雁北飞  阅读(265)  评论(0编辑  收藏  举报