File I/O

优质
小牛编辑
128浏览
2023-12-01

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

流基本上是通过通信路径的字节序列。 有两个主要流: input streamoutput streaminput 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枚举器的成员是 -

  • Append - 它打开现有文件并将光标放在文件末尾,或者如果文件不存在则创建文件。

  • Create - 它创建一个新文件。

  • CreateNew - 它指定操作系统应该创建一个新文件。

  • Open - 它打开一个现有文件。

  • OpenOrCreate - 它指定操作系统应该打开文件(如果存在),否则应该创建一个新文件。

  • Truncate - 它打开一个现有文件并将其大小截断为零字节。

2

FileAccess

FileAccess枚举器具有成员: ReadReadWriteWrite

3

FileShare

FileShare枚举器具有以下成员 -

  • Inheritable - 它允许文件句柄将继承传递给子进程

  • None - 它拒绝当前文件的共享

  • Read - 它允许打开文件进行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

C#中的高级文件操作

前面的示例在C#中提供了简单的文件操作。 但是,要利用C#System.IO类的强大功能,您需要了解这些类的常用属性和方法。

Sr.No.主题和描述
1读取和写入文本文件

它涉及读取和写入文本文件。 StreamReaderStreamWriter类有助于完成它。

2读取和写入二进制文件

它涉及读取和写入二进制文件。 BinaryReaderBinaryWriter类有助于实现此目的。

3操纵Windows文件系统

它为C#程序员提供了浏览和定位Windows文件和目录的能力。