File I/O
file是存储在具有特定名称和目录路径的磁盘中的数据集合。 打开文件进行读取或写入时,它将变为stream 。
流基本上是通过通信路径的字节序列。 有两个主要流: input stream和output stream 。 input stream用于从文件读取数据(读取操作), output stream用于写入文件(写入操作)。
C#I/O类
System.IO命名空间有各种类,用于对文件执行大量操作,例如创建和删除文件,读取或写入文件,关闭文件等。
下表显示了System.IO命名空间中一些常用的非抽象类 -
Sr.No. | I/O类和描述 |
---|---|
1 | BinaryReader 从二进制流中读取原始数据。 |
2 | BinaryWriter 以二进制格式写入原始数据。 |
3 | BufferedStream 用于字节流的临时存储。 |
4 | Directory 帮助操纵目录结构。 |
5 | DirectoryInfo 用于对目录执行操作。 |
6 | DriveInfo 提供驱动器的信息。 |
7 | File 帮助操纵文件。 |
8 | FileInfo 用于对文件执行操作。 |
9 | FileStream 用于读取和写入文件中的任何位置。 |
10 | MemoryStream 用于随机访问存储在内存中的流数据。 |
11 | Path 对路径信息执行操作。 |
12 | StreamReader 用于从字节流中读取字符。 |
13 | StreamWriter 用于将字符写入流。 |
14 | StringReader 用于从字符串缓冲区读取。 |
15 | StringWriter 用于写入字符串缓冲区。 |
FileStream类
System.IO命名空间中的FileStream类有助于读取,写入和关闭文件。 该类派生自抽象类Stream。
您需要创建FileStream对象以创建新文件或打开现有文件。 创建FileStream对象的语法如下 -
FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>,
<FileAccess Enumerator>, <FileShare Enumerator>);
例如,我们创建一个FileStream对象F来读取名为sample.txt as shown的文件sample.txt as shown -
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read,
FileShare.Read);
Sr.No. | 参数和描述 |
---|---|
1 | FileMode FileMode枚举器定义了打开文件的各种方法。 FileMode枚举器的成员是 -
|
2 | FileAccess FileAccess枚举器具有成员: Read , ReadWrite和Write 。 |
3 | FileShare FileShare枚举器具有以下成员 -
|
例子 (Example)
以下程序演示了使用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#中提供了简单的文件操作。 但是,要利用C#System.IO类的强大功能,您需要了解这些类的常用属性和方法。
Sr.No. | 主题和描述 |
---|---|
1 | 读取和写入文本文件 它涉及读取和写入文本文件。 StreamReader和StreamWriter类有助于完成它。 |
2 | 读取和写入二进制文件 它涉及读取和写入二进制文件。 BinaryReader和BinaryWriter类有助于实现此目的。 |
3 | 操纵Windows文件系统 它为C#程序员提供了浏览和定位Windows文件和目录的能力。 |