C#文件(I/O)

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

流基本上是通过通信路径的字节序列。有两个主要流:输入流和输出流。输入流用于从文件读取数据(读取操作),输出流用于写入文件(写入操作)。

C# I/O类

System.IO命名空间具有各种类,用于执行许多文件操作,例如:创建和删除文件,从文件读取或写入文件,关闭文件等。

下表显示了System.IO命名空间中的一些常用的非抽象类:

I/O类 描述
BinaryReader 从二进制流中读取原始数据。
BinaryWriter 以二进制格式写入原始数据。
BufferedStream 一个字节流的临时存储。
Directory 有助于操纵目录结构。
DirectoryInfo 用于对目录执行操作
DriveInfo 提供驱动器的信息。
File 用于帮助操纵文件。
FileInfo 用于对文件执行操作。
FileStream 用于读取和写入文件中的任何位置。
MemoryStream 用于随机访问存储在内存中的流式数据。
Path 执行路径信息的操作。
StreamReader 用于从字节流读取字符。
StreamWriter 用于将字符写入到流中。
StringReader 用于从字符串缓冲区读取。
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的文件,如下所示:

FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
  • FileMode - FileMode枚举器定义打开文件的各种方法。FileMode枚举器的成员有:

    • Append:它打开一个现有的文件,并将光标放在文件的最后,或者如果该文件不存在则创建此文件。
    • Create:它创建一个新文件。
    • CreateNew: 它向操作系统指定它应该创建一个新的文件。
    • Open:它打开一个现有文件。
    • OpenOrCreate:它向操作系统指定它应该打开一个文件(如果存在),否则应该创建一个新的文件。
    • Truncate:它打开一个现有文件,并将其大小截断为零字节。
  • FileAccess - FileAccess枚举器有成员:ReadReadWriteWrite

  • FileShare - 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# 中的简单文件操作。要利用 C# 中的System.IO类的强大功能,需要知道这些类常用的属性和方法。

System.IO类中一此最常用的方法和示例如下所列 -


上一篇: C#异常处理 下一篇: C#属性