首页 理论教育 C#编程新手自学手册:使用FileStream操作

C#编程新手自学手册:使用FileStream操作

时间:2023-10-22 理论教育 版权反馈
【摘要】:FileStream类是专门进行文件操作的Stream,能够同时支持同步读写操作和异步读写操作。FileStream类的特点是具体操作字节和字节数组,对随机文件的操作比较有效。表14-12 FileStream类属性信息(续)FileStream类的主要方法信息如表14-13所示。表14-13 FileStream类方法信息FileStream类能够对文件实现各种常规操作,例如数据流的输入和输出。实例文件的功能是使用FileStream创建指定目录的文件。图14-7 实例执行结果多学一招使用FileStream类可以实现对指定文件内容的读取。2)定义FileStream实例mm,用于设置被读取的文件名。

C#编程新手自学手册:使用FileStream操作

FileStream类是专门进行文件操作的Stream,能够同时支持同步读写操作和异步读写操作。FileStream类的特点是具体操作字节和字节数组,对随机文件的操作比较有效。

FileStream类能够对文件实现低级而复杂的操作,其主要属性的信息如表14-12所示。

表14-12 FileStream类属性信息

978-7-111-36370-5-Part03-179.jpg

(续)

978-7-111-36370-5-Part03-180.jpg

FileStream类的主要方法信息如表14-13所示。

表14-13 FileStream类方法信息

978-7-111-36370-5-Part03-181.jpg

FileStream类能够对文件实现各种常规操作,例如数据流的输入和输出。也能够缓冲输入和输出,从而提高了程序的性能。

FileStream类的对象可以使用Seek()方法来随机访问文件,在创建FileStream对象时需要指定如下四种信息。

1)文件名,用于设置要打开文件的路径。

2)打开模式,用于设置是否对文件执行改写、创建和打开等操作,或上述操作的集合。打开模式是由枚举FileMode来定义的。

3)访问模式,用于设置对文件的读写访问或读写访问的常数,是由枚举FileAccess来定义的。

4)共享模式,用于设置对文件操作的共享性,是由枚举FileShare来定义的。

FileMode枚举中的主要成员的信息如下。

1)Append,用于打开现有文件并查找到文件尾,或创建新的文件。FileMode.Append只能和FileAccess.Write一起使用。

2)Create,用于指定操作系统应该创建新文件。如果文件已经存在,则重写这个文件。如果文件不存在则使用CreateNew,如果存在则使用Truncate。

3)CreateNew,用于指定操作系统应该创建新文件。

4)Open,用于指定操作系统应打开此文件,如果该文件不存在则会引发异常。

5)OpenOrCreate,用于指定操作系统应打开此文件,如果不存在则创建此文件。

6)Truncate,用于指定操作系统应打开此文件,文件被打开后将被截断为0字节大小。

枚举FileAccess中的主要成员信息如下。

1)Read,用于对文件进行读取访问。

2)ReadWrite,用于对文件进行读写访问。

3)Write,用于对文件进行写访问。(www.xing528.com)

下面将通过一个具体的实例来说明通过FileStream类实现读写处理的具体流程。

实例65:使用FileStream创建指定目录的文件

本实例保存在“光盘:\daima\14”文件夹内,项目名为useFileStream。实例文件的功能是使用FileStream创建指定目录的文件。实例文件CodeFile1.cs的主要代码如下:

978-7-111-36370-5-Part03-182.jpg

978-7-111-36370-5-Part03-183.jpg

上述实例代码的设计流程如下。

1)分别定义byte类型数组m_bDatawrite和char类型数组nn。

2)定义FileStream实例mm,用于设置新建的文件。

3)将写入文本的“你好呀”转换为字符数组。

4)对写入的文件流进行处理。

5)通过catch进行一场处理,如果成功则输出“成功”;如果出现异常则输出“出错”。

执行后将创建文件“E:\file.txt”,如图14-7所示。

978-7-111-36370-5-Part03-184.jpg

图14-7 实例执行结果

多学一招

使用FileStream类可以实现对指定文件内容的读取。例如下面的代码:

978-7-111-36370-5-Part03-185.jpg

978-7-111-36370-5-Part03-186.jpg

上述代码的设计流程如下。

1)分别定义byte类型数组mm和char类型数组nn,用于数据转换。

2)定义FileStream实例mm,用于设置被读取的文件名。

3)通过catch语句进行异常判断,如果有异常则输出对应提示。

4)定义Decoder实例tt,用于获取文件内容流。

5)读取成功并输出提示。

上述代码保存在“光盘:\daima\18\duqu”,执行后如果不存在文件“C:\111.txt”,则输出对应的提示。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈