English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Flujo de C# (Stream)

C# incluye los siguientes estándar de IO (entrada/Clase de salida) que se puede leer desde diferentes fuentes (por ejemplo, archivos, memoria, red, almacenamiento aislado, etc.)/Escribir.

Flujo (Stream): System.IO.Stream Es una clase abstracta que proporciona métodos estándar para transmitir bytes (lectura, escritura, etc.) al origen. Al igual que las clases envolventes, transmite bytes. Es necesario leer desde una fuente específica/Las clases que deben escribir bytes deben implementar la clase Stream.

Las siguientes clases heredan de la clase Stream para proporcionar la lectura/Funcionalidades de escritura de bytes:

FileStream:Lee bytes de un archivo físico o escribe bytes en un archivo físico, ya sea .txt, .exe, .jpg o cualquier otro archivo. FileStream se deriva de la clase Stream.

MemoryStream: MemoryStream lee o escribe bytes almacenados en memoria.

BufferedStream: BufferedStream lee o escribe bytes de otros Stream para mejorar ciertas I/O / Rendimiento de la operación O.

NetworkStream: NetworkStream lee o escribe bytes desde o hacia una conexión de socket de red.

PipeStream: PipeStream lee o escribe bytes de diferentes procesos.

CryptoStream: CryptoStream se utiliza para enlazar flujos de datos a transformaciones de cifrado.

La siguiente imagen muestra la estructura de la jerarquía de clases de flujo:

Estructura de la jerarquía de clases de flujo

Lectores y escritores de flujo

StreamReader:StreamReader es una clase auxiliar que permite leer caracteres de Stream utilizando valores de codificación para convertir bytes en caracteres. Puede utilizarse para leer cadenas de diferentes flujos (por ejemplo, FileStream, MemoryStream, etc.).

StreamWriter:StreamWriter es una clase auxiliar que permite escribir cadenas en Stream convirtiendo caracteres en bytes. Puede utilizarse para escribir cadenas en diferentes flujos, como FileStream, MemoryStream, etc.

BinaryReader:BinaryReader es una clase auxiliar utilizada para leer tipos de datos originales desde bytes.

BinaryWriter:BinaryWriter escribe tipos de datos originales en binario.

E/S de flujo

La imagen superior muestra que FileStream lee bytes de un archivo físico, luego StreamReader los convierte en una cadena para leerla. Del mismo modo, StreamWriter toma una cadena y la convierte en bytes, luego escribe en FileStream, y FileStream escribe bytes en un archivo físico. Por lo tanto, FileStream maneja bytes, mientras que StreamReader y StreamWriter manejan cadenas.

 Puntos a recordar

  1. Stream es una clase abstracta utilizada para transmitir bytes desde diferentes fuentes. Es la clase base de todas las otras clases, que leen bytes./Escribir a diferentes fuentes.

  2. La clase FileStream proporciona funcionalidad de lectura y escritura de bytes en archivos físicos.

  3. Las clases de lectores y escritores proporcionan la funcionalidad de leer bytes desde clases de flujo (FileStream, MemoryStream, etc.) y convertirlos en la codificación apropiada.

  4. StreamReader proporciona un método auxiliar para leer cadenas de caracteres desde FileStream convirtiendo bytes en cadenas de caracteres. StreamWriter proporciona un método auxiliar que permite escribir cadenas de caracteres en FileStream convirtiendo cadenas de caracteres en bytes.

En la siguiente parte, aprenderás cómo leer/Escribir en el sistema de archivos.