C# - Stream

本文关键字:Stream | 更新日期: 2023-09-12 17:39:59

C# 包括以下标准 IO(输入/输出)类,用于从文件、内存、网络、独立存储等不同源读取/写入。

Stream:System.IO.Stream是一个抽象类,它提供将字节(读取,写入等)传输到源的标准方法。它就像一个包装类来传输字节。需要从特定源读取/写入字节的类必须实现 Stream 类。

以下类继承 Stream 类以提供从特定源读取/写入字节的功能:

FileStream 从物理文件读取或写入字节,无论它是 .txt、.exe、.jpg 还是任何其他文件。FileStream 派生自 Stream 类。

MemoryStream:MemoryStream读取或写入存储在内存中的字节。

BufferedStream:BufferedStream从其他流读取或写入字节,以提高某些 I/O 操作的性能。

NetworkStream:NetworkStream从网络套接字读取或写入字节。

PipeStream: PipeStream从不同的进程读取或写入字节。

CryptoStream:CryptoStream用于将数据流链接到加密转换。

下图显示了流类的层次结构:

Stream Classes Hierarchy

Stream Readers and Writers

StreamReaders:StreamReaders是一个帮助程序类,用于通过使用编码值将字节转换为字符来从流中读取字符。它可用于从不同的流(如文件流,内存流等)中读取字符串(字符)。

StreamWriter:StreamWriter是一个帮助程序类,用于通过将字符转换为字节来将字符串写入Stream。它可用于将字符串写入不同的流,如FileStream,MemoryStream等。

BinaryReader:BinaryReader 是一个帮助程序类,用于从字节读取基元数据类型。

BinaryWriter:BinaryWriter用二进制编写基元类型。

Stream IO

上图显示FileStream从物理文件中读取字节,然后StreamReader通过将字符串转换为字符串来读取字符串。同样,StreamWriter获取字符串并将其转换为字节并写入FileStream,然后FileStream将字节写入物理文件。因此,FileStream处理字节,其中 StreamReaderStreamWriter 处理字符串。

注意:

  1. Stream 是一个抽象类,用于从不同源传输字节。它是所有其他类的基类,用于将字节写入不同的源。
  2. FileStream类提供字节到物理文件的读取和写入功能。
  3. 读取器和写入器类提供从Stream类(FileStream,MemoryStream等)读取字节的功能,并将字节转换为适当的编码。
  4. StreamReader提供了一个帮助程序方法,通过将字节转换为字符串来从 FileStream 读取字符串。StreamWriter 提供了一个帮助程序方法,通过将字符串转换为字节来将字符串写入 FileStream。