C# - 流 (Stream)
C# 包含以下标准 IO (输入/输出) 类,用于从文件、内存、网络、独立存储等不同来源读取/写入数据。
Stream(流): System.IO.Stream 是一个抽象类,提供标准方法来向源传输字节(读取、写入等)。它就像一个用于传输字节的包装类。需要从特定来源读取/写入字节的类必须实现 Stream 类。
以下类继承自 Stream 类,以提供从特定源读取/写入字节的功能
FileStream(文件流) 从物理文件(无论是 .txt、.exe、.webp 或任何其他文件)读取或写入字节。FileStream 派生自 Stream 类。
MemoryStream(内存流): MemoryStream 读取或写入存储在内存中的字节。
BufferedStream(缓冲流): BufferedStream 从其他流读取或写入字节,以提高某些 I/O 操作的性能。
NetworkStream(网络流): NetworkStream 从网络套接字读取或写入字节。
PipeStream(管道流): PipeStream 从不同的进程读取或写入字节。
CryptoStream(加密流): CryptoStream 用于将数据流链接到加密转换。
下图显示了流类的层次结构

流读取器和写入器
StreamReader(流读取器):StreamReader 是一个辅助类,通过使用编码值将字节转换为字符来从流中读取字符。它可用于从不同的流(如 FileStream、MemoryStream 等)读取字符串(字符)。
StreamWriter(流写入器):StreamWriter 是一个辅助类,通过将字符转换为字节来将字符串写入流。它可用于将字符串写入不同的流,例如 FileStream、MemoryStream 等。
BinaryReader(二进制读取器):BinaryReader 是一个辅助类,用于从字节中读取原始数据类型。
BinaryWriter(二进制写入器):BinaryWriter 以二进制形式写入原始类型。

上图显示了 FileStream
从物理文件读取字节,然后 StreamReader
通过将这些字节转换为字符串来读取字符串。同样,StreamWriter
接收一个字符串并将其转换为字节并写入 FileStream
,然后 FileStream
将字节写入物理文件。因此,FileStream
处理字节,而 StreamReader
和 StreamWriter
处理字符串。
在下一节中学习如何读取/写入文件系统。