文件是存储在具有特定名称和目录路径的磁盘中的数据的集合。当文件打开以进行读取或写入时,它将成为流。
流基本上是通过通信路径的字节序列。有两个主要流:输入流和输出流。输入流用于从文件读取数据(读取操作),输出流用于写入文件(写入操作)。
system.io命名空间具有各种类,用于执行许多文件操作,例如:创建和删除文件,从文件读取或写入文件,关闭文件等。
下表显示了system.io命名空间中的一些常用的非抽象类:
| i/o类 | 描述 |
|---|---|
| binaryreader | 从二进制流中读取原始数据。 |
| binarywriter | 以二进制格式写入原始数据。 |
| bufferedstream | 一个字节流的临时存储。 |
| directory | 有助于操纵目录结构。 |
| directoryinfo | 用于对目录执行操作 |
| driveinfo | 提供驱动器的信息。 |
| file | 用于帮助操纵文件。 |
| fileinfo | 用于对文件执行操作。 |
| filestream | 用于读取和写入文件中的任何位置。 |
| memorystream | 用于随机访问存储在内存中的流式数据。 |
| path | 执行路径信息的操作。 |
| streamreader | 用于从字节流读取字符。 |
| streamwriter | 用于将字符写入到流中。 |
| stringreader | 用于从字符串缓冲区读取。 |
| stringwriter | 用于写入字符串缓冲区。 |
system.io命名空间中的filestream类有助于读取,写入和关闭文件。这个类派生自抽象类stream。
需要创建一个filestream对象来创建一个新文件或打开现有文件。创建filestream对象的语法如下:
filestream <object_name> = new filestream( <file_name>, <filemode enumerator>, <fileaccess enumerator>, <fileshare enumerator>);
例如,创建一个filestream对象f来读取一个名称为sample.txt的文件,如下所示:
filestream f = new filestream("sample.txt", filemode.open, fileaccess.read, fileshare.read);
filemode - filemode枚举器定义打开文件的各种方法。filemode枚举器的成员有:
append:它打开一个现有的文件,并将光标放在文件的最后,或者如果该文件不存在则创建此文件。create:它创建一个新文件。createnew: 它向操作系统指定它应该创建一个新的文件。open:它打开一个现有文件。openorcreate:它向操作系统指定它应该打开一个文件(如果存在),否则应该创建一个新的文件。truncate:它打开一个现有文件,并将其大小截断为零字节。fileaccess - fileaccess枚举器有成员:read,readwrite和write。
fileshare枚举器具有以下成员:inheritable:它允许文件句柄将继承传递给子进程。none:它会拒绝当前文件的共享read:它允许打开文件进行读取readwrite:它允许打开文件进行阅读和写入write:它允许打开文件进行写入以下程序演示了如何使用filestream类:
using system;
using system.io;
namespace fileioapplication
{
class program
{
static void main(string[] args)
{
filestream f = new filestream("test.dat", filemode.openorcreate, fileaccess.readwrite);
for (int i = 1; i <= 20; i++)
{
f.writebyte((byte)i);
}
f.position = 0;
for (int i = 0; i <= 20; i++)
{
console.write(f.readbyte() + " ");
}
f.close();
console.readkey();
}
}
}
当上述代码被编译并执行时,它产生以下结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1
前面的例子提供了 c# 中的简单文件操作。要利用 c# 中的system.io类的强大功能,需要知道这些类常用的属性和方法。
system.io类中一此最常用的方法和示例如下所列 -
读取和写入文本文件 - 它涉及到阅读和写入文本文件。streamreader和streamwriter类有助于完成它。
读取和写入二进制文件 - 它涉及从二进制文件读取和写入。binaryreader和binarywriter类有助于完成此操作。
操作windows文件系统 - 它为 c# 程序员提供浏览和查找windows文件和目录的能力。