Csharp 简明教程
C
file 是存储在具有特定名称和目录路径的磁盘中的数据集合。当一个文件被打开用于读取或写入时,它将变为 stream 。
流基本上是通过通信路径传递的一系列字节。有两个主流: input stream 和 output stream 。输入流 用于从文件中读取数据(读取操作), output stream 用于将数据写入文件(写入操作)。
C
System.IO 命名空间具有用于执行众多文件操作的各种类,例如创建和删除文件、从文件读取或向文件写入、关闭文件等。
下表显示了 System.IO 命名空间中使用的一些常用非抽象类:
Sr.No. |
I/O Class & Description |
1 |
BinaryReader 从二进制流中读取基本数据。 |
2 |
BinaryWriter 以二进制格式写入基本数据。 |
3 |
BufferedStream 用于临时存储字节流。 |
4 |
Directory 有助于操作目录结构。 |
5 |
DirectoryInfo 用于对目录执行操作。 |
6 |
DriveInfo 提供驱动器信息。 |
7 |
File Helps in manipulating files. |
8 |
FileInfo 用于对文件执行操作。 |
9 |
FileStream 用于读写文件中的任何位置。 |
10 |
MemoryStream 用于随机访问存储在内存中的流数据。 |
11 |
Path 对路径信息执行操作。 |
12 |
StreamReader 用于从字节流中读取字符。 |
13 |
StreamWriter 用于向流中写入字符。 |
14 |
StringReader 用于从字符串缓冲区中读取。 |
15 |
StringWriter 用于写入字符串缓冲区。 |
The FileStream Class
System.IO 命名空间中的 FileStream 类有助于读取、写入和关闭文件。此类派生自抽象类 Stream。
您需要创建一个 FileStream 对象才能创建新文件或打开现有文件。创建 FileStream 对象的语法如下 −
FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>,
<FileAccess Enumerator>, <FileShare Enumerator>);
例如,我们为读取名为 sample.txt as shown 的文件创建一个 F FileStream 对象 −
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read,
FileShare.Read);
Sr.No. |
Parameter & Description |
1 |
FileMode FileMode 枚举器定义了用于打开文件的各种方法。FileMode 枚举器的成员如下 − Append − 打开现有文件,并将光标置于文件的末尾,或者,如果该文件不存在,则创建该文件。 Create − 创建新文件。 CreateNew − 向操作系统指定,它应该创建一个新文件。 Open − 打开现有文件。 OpenOrCreate − 向操作系统指定,如果文件存在,则它应该打开该文件,否则它应该创建一个新文件。 Truncate − 打开现有文件,并将其大小截断为零字节。 |
2 |
FileAccess FileAccess 枚举器具有以下成员: Read 、 ReadWrite 和 Write 。 |
3 |
FileShare FileShare 枚举器具有以下成员 − Inheritable − 允许文件句柄将继承权限传递给子进程 None − 拒绝共享当前文件 Read − 允许打开文件以读取。 ReadWrite − 允许打开文件以进行读写 Write − 允许打开文件以进行写入 |
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
Advanced File Operations in C
上述示例为 C# 中简单文件操作提供了示例。但是,为了利用 C# System.IO 类的强大功能,您需要了解这些类的常用属性和方法。
Sr.No. |
Topic & Description |
1 |
Reading from and Writing into Text files 它涉及从文本文件中读取和写入文本文件。 StreamReader 和 StreamWriter 类有助于完成此项任务。 |
2 |
Reading from and Writing into Binary files 它涉及从二进制文件中读取和写入二进制文件。 BinaryReader 和 BinaryWriter 类有助于完成此项任务。 |
3 |
Manipulating the Windows file system 它赋予 C# 程序员浏览和查找 Windows 文件和目录的能力。 |