文件是存储在具有特定名称和目录路径的磁盘中的数据的集合。当文件打开以进行读取或写入时,它将成为流。
流基本上是通过通信路径的字节序列。有两个主要流:输入流和输出流。输入流用于从文件读取数据(读取操作),输出流用于写入文件(写入操作)。
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文件和目录的能力。