Csharp 简明教程

C

file 是存储在具有特定名称和目录路径的磁盘中的数据集合。当一个文件被打开用于读取或写入时,它将变为 stream

流基本上是通过通信路径传递的一系列字节。有两个主流: input streamoutput 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 枚举器具有以下成员: ReadReadWriteWrite

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 它涉及从文本文件中读取和写入文本文件。 StreamReaderStreamWriter 类有助于完成此项任务。

2

Reading from and Writing into Binary files 它涉及从二进制文件中读取和写入二进制文件。 BinaryReaderBinaryWriter 类有助于完成此项任务。

3

Manipulating the Windows file system 它赋予 C# 程序员浏览和查找 Windows 文件和目录的能力。