文件是存储在具有特定名称和目录路径的磁盘中的数据的集合。当文件打开以进行读取或写入时,它将成为流。
流基本上是通过通信路径的字节序列。有两个主要流:输入流和输出流。输入流用于从文件读取数据(读取操作),输出流用于写入文件(写入操作)。
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
枚举器有成员: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
类的强大功能,需要知道这些类常用的属性和方法。
System.IO
类中一此最常用的方法和示例如下所列 -
读取和写入文本文件 - 它涉及到阅读和写入文本文件。
StreamReader
和StreamWriter
类有助于完成它。读取和写入二进制文件 - 它涉及从二进制文件读取和写入。
BinaryReader
和BinaryWriter
类有助于完成此操作。操作Windows文件系统 - 它为 C# 程序员提供浏览和查找Windows文件和目录的能力。