FileStream对象表示指向磁盘或网络路径上的文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或StreamWriter执行这些功能。这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。字符数据易于使用,但是有些操作,如随机文件访问(访问文件中间某点的数据),就必须由FileStream对象执行。
还有几种方法可以创建FileStream对象。其构造函数具有许多不同的重载版本,最简单的构造函数仅有两个参数,即文件名和FileMode枚举值。
FileStream aFile = new FileStream(filename, FileMode.<Member>);
FileMode枚举包含几个成员,指定了如何打开或创建文件。稍后介绍这些枚举成员。另一个常用的构造函数如下:
FileStream aFile =
new FileStream {filename, FileMode.<Member>, FileAccess,<Menuber>);
第三个参数是FileAccess枚举的一个成员,它指定了流的作用。FileAceess枚举的成员如表所示。
成 员 | 说 明 |
Read | 打开文件,用于只读 |
Write | 打开文件,用于只写 |
RcadWrite | 打开文件,用于读写 |
对文件进行非FileAccess枚举成员指定的操作会导致抛出异常。此属性的作用是,基于用户的权限级别改变用户对文件的访问权限。
在FileStream构造函数不使用FileAccess枚举参数的版本中,使用默认值FileAccess. ReadWrite。
FileMode枚举成员如下表所示。使用每个值会发生什么,取决于指定的文件名是否表示已有的文件。注意,这个表中的项表示创建流时该流指向文件中的位置,下一节将详细讨论这个主题。除非特别说明,否则流就指向文件的开头处。
成 员 | 文件存在 | 文件不存在 |
Append | 打开文件,流指向文件的末尾处,只能与枚举FileAccess.Write | 创建一个新文件。只能与枚举 |
结合使用 | FileAccess.Write 结合使用 | |
Create | 删除该文件,然后创建新文件 | 创建新文件 |
CreateNew | 抛出异常 | 创建新文件 |
Open | 打开文件,流指向文件开头处 | 抛出异常 |
OpenOrCreate | 打开文件,流指向文件开头处 | 创建新文件 |
Truncate | 打开文件,淸除其内容。流指向文件开头处,保留文件的初始创 建曰期 | 抛出异常 |
File和Filelnfo类都提供了 OpenRead()和OpenWrite()方法,更易于创建FileStream对象。前者打开了只读访问的文件,后者只允许写入文件。这些都提供了快捷方式,因此不必以FileStream构造函数的参数形式提供所有必要的信息。例如,下面的代码行打开了用于只读访问的Data.txt文件:
FileStream aFile = File.OpenRead{"Data.txt");
下面的代码执行同样的功能:
Filelnfo aFilelnfo = new Filelnfo("Data.txt");
FileStream aFile = aFilelnfo.OpenRead();
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>