在System.IO名称空间中包含了用于文件输入输出的主要类。 File:实用类,提供许多静态方法,用于移动、复制和删除文件。 Directory:实用类,提供许多静态方法,用于移动、复制和删除目录。 Path:实用类,用于处理路径名称。 FileInfo:表示磁盘上的物理文件,具有可以处理此文件的方法。要完成对文件的读取和写入工作,就必须创建Stream对象。 DirectoryInfo:表示磁盘上的物理目录,具有可以处理此目录的方法。 FileStream:表示可以被写或被读,或二者均可的文件。此文件可以同步或异步的读和写。 StreamReader:从流中读取字符数据,并可以通过使用FileStream被创建为基类。 StreamWriter:向流写字符数据,可以通过使用FileStream被创建为基类。 FileSystemWatcher:用于监控文件和目录,并在这些位置发生变化时,给出应用程序可以捕获的事件。 File类一些常用的静态方法:
Directory类一些常用的静态方法:
FileInfo类: 它没有静态方法,仅可用于实例化的对象。FileInfo对象表示在磁盘或网络位置的文件。注意它不是流。为了实现对文件的读取或写入,必须创建Stream对象。 如果仅在对象上进行单一方法调用,则可以使用静态File类。在此,静态调用要快一些,因为.Net Framework不必遍历实例化新对象并调用方法的过程。但是如果应用程序在文件上执行几种操作,在实例化FileInfo对象并使用其方法就更好一些。这会节省时间,因为对象将在文件系统上引用正确的文件,而静态类就必须每次都寻找文件。 FileInfo类提供的基础性的属性,可用来更新文件。
DirectoryInfo类: DirectoryInfo类的作用类似于FileInfo类。它是一个实例化的对象,表示计算机上的单一目录。同FileInfo类—样,在Directory和DirectoryInfo之间可以复制许多方法调用。当使用这二者时,可以便用相同的原则:如果进行单一调用,就使用静态Directory类。如果进行一系列调用,则使用实例化的DirectoryInfo对象。 DirectoryInfo类与FileInfo类共享几乎所有相同的属性,DirectoryInfo类作用在无文件的目录上除外。 FileStream对象: 表示在磁盘或网络路径上指向文件的流。当类提供向文件读取和写入字节的方法时,经常使用StreamReader和StreamWriter执行这些功能。这是因为FileStream类操作字节和字节数组,而Stream类操作字符数据。 还有几种方法可以创建FileStream对象。构造函数具有许多不同的重载/版本,但是最简单的构造函数仅仅带有两个参数,即文件名和FileMode枚举。 FileStream aFile = new FileStream("a.txt",FileMode.OpenOrCreate); FileMode枚举的成员:
前面的构造函数默认以只读模式打开文件。需要一个附加参数规定不同的访问级别,此参数即FileAccess参数。 FileStream aFile = new FileStream("a.txt",FileMode.OpenOrCreate,FileAccess.Write); 此行代码将打开文件,对文件进行写访问。对文件的任何读的企图都会导致抛出异常。仅有3种类型的FileAccess枚举:Read,ReadWirte和Write。可以打开一个文件,只读、只写或进行读写操作。此属性的作用是:基于用户的身份验证级别改变用户对文件的访问。 例:从文件中读取信息(其中用到了将字节块转换为字符块的方法) 例:将相应的字符信息写入到文件中(其中用到了将字符块转换为字节块的方法,然后再进行写入操作) StreamWriter类: 允许我们将字符和字符串写入到文件中,它处理重要的转换和向FileStream对象写入工作。 如果已经有了FileStream对象,则可以使用此对象来创建StreamWriter类。 FileStream aFile = new FileStream(@"Temp.txt",FileMode.CreateNew); StreamWriter sw = new StreamWriter(aFile); 也可以直接从文件中创建StreamWriter对象。 StreamWriter sw = new StreamWriter(@"Temp.txt",true); 这个构造函数中的后一个参数的意义是: false:创建一个新文件,或者截取现有文件并打开它。 true:打开文件,保留原来的数据。如果找不到文件,则创建一个新文件。 例子见程序。 StreamReader类: 从文件中读取数据,可以用于任何流。 利用FileStream对象创建。 FileStream aFile = new FileStream(@"Temp.txt",FileMode.Open); StreamReader sr = new StreamReader(aFile); 直接从文件中创建。 StreamReader sw = new StreamReader(@"Temp.txt");
|
|