位置:首页 > 高级语言 > C#在线教程 > C#文件I/O

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类有助于读取,写入和关闭文件。这个类派生自抽象类流。

需要创建一个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 枚举成员有:Read, ReadWrite 和 Write.

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类的无限权力,你需要知道常用属性和这些类的方法。

我们将讨论这些类和它们执行的操作,在下面的章节。请提供到达各个部分的链接:

主题和描述
读取和写入文本文件
它包括读出和写入到文本文件。StreamReader和StreamWriter类可以帮助来完成它
读取和写入二进制文件
它包括读出和写入到二进制文件。 BinaryReader在该和的BinaryWriter类有助于实现这一目标
操纵Windows文件系统
它提供了一个C#程序员来浏览和查找Windows文件和目录的能力