Exportar (0) Imprimir
Expandir todo

Stream (Clase)

Proporciona una vista genérica de una secuencia de bytes.

Espacio de nombres: System.IO
Ensamblado: mscorlib (en mscorlib.dll)

[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public abstract class Stream : MarshalByRefObject, IDisposable
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public abstract class Stream extends MarshalByRefObject implements IDisposable
SerializableAttribute 
ComVisibleAttribute(true) 
public abstract class Stream extends MarshalByRefObject implements IDisposable

Para obtener un ejemplo de cómo crear un archivo y escribir texto en él, vea Cómo: Escribir texto en un archivo. Para obtener un ejemplo de cómo leer texto de un archivo, vea Cómo: Leer texto de un archivo. Para obtener un ejemplo de cómo leer y escribir en un archivo binario, vea Cómo: Leer y escribir en un archivo de datos recién creado.

Las secuencias comprenden tres operaciones fundamentales.

  1. Es posible leer información de las secuencias. La lectura es la transferencia de datos desde una secuencia a una estructura de datos como, por ejemplo, una matriz de bytes.

  2. Se puede escribir información en las secuencias. La escritura es la transferencia de datos desde una estructura de datos hasta una secuencia.

  3. Las secuencias pueden admitir búsqueda. La búsqueda es la consulta y modificación de la posición actual en una secuencia. La capacidad de realizar este tipo de búsquedas depende del tipo de almacén de respaldo que posea una secuencia. Por ejemplo, las secuencias de red no trabajan con un concepto unificado de "posición actual" y, por tanto, no suelen admitir búsquedas.

Stream es la clase base de todas las secuencias. Una secuencia es una abstracción de una secuencia de bytes, como un archivo, un dispositivo de entrada/salida, un canal de comunicación interprocesos o un socket TCP/IP. La clase Stream y sus clases derivadas proporcionan una visión genérica de diferentes tipos de entrada y salida, aislando al programador de los detalles específicos del sistema operativo y sus dispositivos subyacentes.

Según el origen de datos o repositorio subyacente, las secuencias pueden admitir sólo algunas de estas características. Una aplicación puede consultar las características de una secuencia mediante las propiedades CanRead, CanWrite y CanSeek.

Los métodos Read y Write leen y escriben datos en varios formatos. Para secuencias que admiten búsquedas, se pueden utilizar los métodos Seek y SetLength, y las propiedades Position y Length para consultar y modificar la posición y longitud actuales de una secuencia.

Algunas implementaciones de secuencia almacenan los datos subyacentes en un búfer local para mejorar el rendimiento. Para estas secuencias, puede utilizarse el método Flush con el fin de borrar el contenido de los búferes internos y asegurar la escritura de todos los datos en el origen de datos o repositorio subyacente.

Al llamar a Close en Stream se vacían los datos almacenados en el búfer mediante una llamada a Flush. Close libera también los recursos del sistema operativo como los identificadores de archivo, las conexiones de red o la memoria utilizada para el almacenamiento en el búfer interno. La clase BufferedStream permite que una secuencia pueda estar contenida en otra secuencia almacenada en búfer con el fin de mejorar el rendimiento de lectura y escritura.

Si se necesita una secuencia sin almacén de respaldo (por ejemplo, un sector de almacenamiento de bits), se usa Null.

Notas para los implementadores Al implementar una clase Stream derivada, se deben proporcionar implementaciones para los métodos Read y Write. Los métodos asincrónicos BeginRead, EndRead, BeginWrite y EndWrite se implementan mediante los métodos asincrónicos Read y Write. De forma similar, las implementaciones de Read y Write funcionarán correctamente con los método asincrónicos. Las implementaciones predeterminadas de ReadByte y WriteByte crean una nueva matriz de bytes de un solo elemento y, después, llaman a las implementaciones de Read y Write. Al derivar de Stream, si se dispone de un búfer de bytes interno, se recomienda especialmente reemplazar estos métodos para obtener acceso al búfer interno y obtener así una mejora sustancial en el rendimiento. También se deben proporcionar implementaciones de CanRead, CanSeek, CanWrite, Flush, Length, Position, Seek y SetLength. En clases derivadas, no reemplace el método Close; en su lugar, ponga toda la lógica de limpieza de Stream en el método Dispose. Para obtener más información, vea Implementar un método Dispose.

TemaUbicación
Cómo: Escribir texto en un archivoFundamentos de programación en .NET Framework
Cómo: Leer texto de un archivoFundamentos de programación en .NET Framework
Cómo: Escribir texto en un archivoFundamentos de programación en .NET Framework
Cómo: Leer texto de un archivoFundamentos de programación en .NET Framework

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft