文件和流是指在存储媒介中传入或者传出数据。在.net中,system.io命名空间包含了以异步和同步的方式对数据进行读取和写入操作的类型(class)。
1.文件
文件是一个有字节组成的有序的命名集合,它具有永久存储。在处理文件时。你将处理目录路径、磁盘存储、文件和目录名称。相反流是一个字节序列,可用于对文件进行读取和写入操作。
常用的文件和目录类:
类名称 | 描述 |
File | 静态类,提供了用于创建、复制、删除、移动和打开的静态方法。 |
FileInfo | 实例类。提供了与File一样的实例方法 |
Directory | 静态类,提供了创建、移动、和枚举目录和子目录的发放。 |
DirectoryInfo | 实例类,与Directory一样的实例方法。 |
2.流
Stream类是所有流的基类,stream支持读取和写入字节,stream类及其派生类提供了数据源和存储库的常用方法,程序员不必了解操作系统和基础设备的具体实现细节。
stream有三个基本的操作:
- 读取:将数据从流传输到数据结构。
- 写入:将数据从数据源传输到流。
- 查找:对流中的当前位置进行查询或者修改。
在.net中一下常见的流类如下:
类名称 | 描述 |
FileStream | 用于对文件进行读取和写入操作 |
IsolatedStorageFileStream | 用于对独立存储中的文件进行读取或者写入操作。 |
MemoryStream | 用于对内存中的数据进行读取或者写入操作 |
BufferedStream | 改进读取和写入操作的性能 |
NetWorkStream | 网络套接字进行读取和写入 |
PipeStream | 匿名和命名管道进行读取和写入 |
CryptoStream | 将数据流链接到加密转化 |
3.读取器和编写器。
.Net 提供了在流中读取和写入已编码字符串的类型。通常,流用于字节输入和输出,读取器和编写器类型处理字符和字节之间的来回转化,以便流完成操作。每个读取器和编写器都与流关联。可以通过baseStream属性来进行检索。
一些常用的读取器和编写器如下:
类名称 | 描述 |
BinaryReader和BinaryWriter | 用于将基元数据作为二进制值进行读取和写入 |
StreamReader和StreamWriter | 通过使用编码值在字符和字节之间来回读取和写入字符 |
StringReader和StringWriter | 从字符串读取字符和将字符写入字符串中 |
TextReader和TextWriter |
用作其他读写器和编写器的抽象基类 |
4.异步IO操作
读取和写入大量数据会占用大量的资源,如果你的应用程序要保持对用户的响应及时,那么应该使用异步方法来执行这些任务,.Net的IO操作中的异步操作都是包含Async,比如CopyToAsync、FlushAsync、ReadAsync,使用这些方法的时候需要与async和await关键字一起使用。