在.NET框架中进行的所有IO操作都要用到流(Stream)。
System.IO命名空间中包含许多IO相关的类,C#文件读写的类几乎都在其中,下面对其进行详细介绍。
主要类列表:
类 | 说明 |
BinaryReader | 用特定编码将基元数据读作二进制值。 |
BinaryWriter | 以二进制形式将基元类型写入流,并支持用特定的编码写入字符串 |
BufferedStream | 给另一流上的读写操作添加一个缓冲层。 |
Directory | 静态实用类,提供用于创建、移动和枚举目录和子目录的静态方法 |
DirectoryInfo | 表示磁盘上的物理目录,此类包含处理目录的实例方法。 |
DriveInfo | 提供有关驱动器信息的访问。 |
File | 提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建FileStream对象。 |
FileInfo | 提供用于创建、复制、删除、移动和打开文件的实例方法,并帮助创建FileStream对象。 |
FileStream | 文件Stream对象,既支持同步读写文件,也支持异步读写操作。 |
FileSystemInfo | FileInfo和DirectoryInfo的基类,根据多态性可以同时处理文件和目录 |
MemoryStream | 存储区为内存的流。 |
Path | 对包含文件或目录信息的string执行操作的静态成员。 |
StreamReader | 实现TextReader,使其以特定编码从流中读取字符数据,可以使用FileStream将其创建为基类 |
StreamWriter | 实现TextWriter,使其以特定编码向流中写字符数据,可以使用FileStream将其创建为基类 |
StringReader | 实现从字符串进行读取的TextReader |
StringWriter | 实现一个用于将信息写入字符串的TextWriter。该信息存储在StringBuilder中 |
TextReader | 表示可读取连续字符的读取器 |
TextWriter | 表示可编写一个有序字符的编写器。抽象类。 |
System.MarshalByRefObject | .NET中用于远程操作的类的基类,它允许在不同应用程序之间编组数据。下面的项都在System.IO中。 |
FileSystemWatcher | FileSystemWatcher 用于监控文件和目录,提供了这些文件和目录发生变化时应用程序可以捕获的事件。 |
另外在System.IO.ComPRession名称空间的类,可用于GZip或Deflate压缩文件的读写:
从上表可以看到有多种可用于处理文件IO的流,最重要的类型是FileStream类,它提供了读写文件的功能。其他的还有BufferedStream, CryptoStream, MemoryStream和NetworkStream等。
方法 | 说明 |
Copy | 将文件从源位置复制到目标位置 |
Create | 在指定路径上创建文件 |
Delete | 删除文件,如果文件不存在,不引发异常 |
Exists | 确定指定的文件是否存在 |
Move | 将指定文件移动新位置,并提供指定新文件名选项 |
Open | 返回指定路径上的FileStream对象 |
CreateText | 创建或打开一个文件用于写入UTF-8文本 |
GetCreationTime | 返回指定文件或目录的创建日期和时间 |
GetLastaccessTime | 返回上次访问指定文件或目录的日期和时间 |
GetLastWriterTime | 返回上次写入指定文件或目录的日期和时间 |
OpenRead | 打开现有文件进行读取 |
OpenText | 打开现有UTF-8文本文件进行读取 |
OpenWriter | 打开现有文件进行写入 |
ReadAllBytes | 打开一个文本文件,将文件的内容读入一个字节数组,然后关闭该文件 |
ReadAllLines | 打开一个文本文件,将文件的所有行读取一个字符串数组,然后关闭该文件 |
ReadAllText | 打开一个文本文件,将文件的所有内容读入一个字符串,然后关闭该文件 |
Replace | 使用其他文件的内容替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。 |
FileInfo类和File类有许多方法相同,但不是静态类,可实例化,用于表示磁盘或网络位置上的文件。如:
FileInfo aFile = new FileInfo("Version.hpp");
FileInfo和File类由许多类似的方法,如下:
FileInfo aFile = new FileInfo("Version.hpp");if(aFile.Exists) Console.WriteLine("File Exists");if(File.Exists("Version.hpp")) Console.WriteLine("File Exists");
这段代码检查文件Version.hpp是否存在,这里没有指定目录信息,此时为当前工作目录。
什么使用使用FileInfo,什么时候使用File,可以遵循以下原则:
FileInfo类也提供了许多与底层文件相关的属性,大多属性继承于FileSystemInfo,可应用于File和Directory类。FileSystemInfo类的属性如下:
属性 | 说明 |
Attributes | 使用FileAttributes枚举,获取或设置当前文件或目录的特性。 |
CreationTime, CreationTimeUtc | 获取当前文件的创建日期和时间,可以使用UTC和非UTC版本 |
Extension | 获取文件扩展名,只读属性 |
Exists | 确定文件是否存在,只读属性,在FileInfo和DirectoryInfo中被重写 |
FullName | 文件完整路径,只读 |
LastAccessTime, LastAccessTimeUtc | 获取或设置上次访问当前文件的日期和时间,包含UTC和非UTC版本 |
LastWriteTime, LastWriteTimeUtc 学习交流
热门图片
猜你喜欢的新闻
新闻热点 2019-10-23 09:17:05
2019-10-21 09:20:02
2019-10-21 09:00:12
2019-09-26 08:57:12
2019-09-25 08:46:36
2019-09-25 08:15:43
疑难解答 |