文件和流IO

文件和流是指在存储媒介中传入或者传出数据。在.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关键字一起使用。

原文地址:https://www.cnblogs.com/VARForrest/p/15631953.html