Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase Stream

 

Publicado: noviembre de 2016

Proporciona una vista genérica de una secuencia de bytes. Esta es una clase abstracta.

Para examinar el código fuente de .NET Framework de este tipo, consulte el origen de referencia.

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


[<AbstractClass>]
[<SerializableAttribute>]
[<ComVisibleAttribute(true)>]
type Stream = 
    class
        inherit MarshalByRefObject
        interface IDisposable
    end

NombreDescripción
System_CAPS_protmethodStream()

Inicializa una nueva instancia de la clase Stream.

NombreDescripción
System_CAPS_pubpropertyCanRead

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si la secuencia actual admite lectura.

System_CAPS_pubpropertyCanSeek

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si la secuencia actual admite búsquedas.

System_CAPS_pubpropertyCanTimeout

Obtiene un valor que determina si se puede agotar el tiempo de espera de la secuencia actual.

System_CAPS_pubpropertyCanWrite

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si la secuencia actual admite escritura.

System_CAPS_pubpropertyLength

Cuando se reemplaza en una clase derivada, obtiene la longitud en bytes de la secuencia.

System_CAPS_pubpropertyPosition

Cuando se reemplaza en una clase derivada, se obtiene o se establece la posición dentro de la secuencia actual.

System_CAPS_pubpropertyReadTimeout

Obtiene o establece un valor, en milisegundos, que determina durante cuánto tiempo la secuencia intentará realizar operaciones de lectura antes de que se agote el tiempo de espera.

System_CAPS_pubpropertyWriteTimeout

Obtiene o establece un valor, en milisegundos, que determina durante cuánto tiempo la secuencia intentará realizar operaciones de escritura antes de que se agote el tiempo de espera.

NombreDescripción
System_CAPS_pubmethodBeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

Comienza una operación de lectura asincrónica. (Utilice ReadAsync en su lugar; vea la sección Comentarios).

System_CAPS_pubmethodBeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Comienza una operación de escritura asincrónica. (Utilice WriteAsync en su lugar; vea la sección Comentarios).

System_CAPS_pubmethodClose()

Cierra la secuencia actual y libera todos los recursos (como sockets e identificadores de archivo) asociados a esta. En lugar de llamar a este método, asegúrese de que la secuencia se desecha correctamente.

System_CAPS_pubmethodCopyTo(Stream)

Cierra la secuencia actual y libera todos los recursos (tales como sockets y manejadores de archivo)asociados a la secuencia actual.

System_CAPS_pubmethodCopyTo(Stream, Int32)

En vez de llamar a este método, asegúrese de que la secuencia actual ha sido correctamente liberada.

System_CAPS_pubmethodCopyToAsync(Stream)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia.

System_CAPS_pubmethodCopyToAsync(Stream, Int32)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia, usando el tamaño de búfer especificado.

System_CAPS_pubmethodCopyToAsync(Stream, Int32, CancellationToken)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia, utilizando el tamaño de búfer y el token de cancelación especificados.

System_CAPS_pubmethodCreateObjRef(Type)

Crea un objeto que contiene toda la información pertinente necesaria para generar a un proxy utilizado para comunicarse con un objeto remoto.(Heredado de MarshalByRefObject).

System_CAPS_protmethodCreateWaitHandle()

Obsoleto. Asigna un objeto WaitHandle.

System_CAPS_pubmethodDispose()

Libera todos los recursos que usa Stream.

System_CAPS_protmethodDispose(Boolean)

Libera los recursos no administrados que usa Stream y libera los recursos administrados de forma opcional.

System_CAPS_pubmethodEndRead(IAsyncResult)

Espera a que se complete la lectura asincrónica que se encuentra pendiente. (Utilice ReadAsync en su lugar; vea la sección Comentarios).

System_CAPS_pubmethodEndWrite(IAsyncResult)

Finaliza una operación de escritura asincrónica. (Utilice WriteAsync en su lugar; vea la sección Comentarios).

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).

System_CAPS_pubmethodFlush()

Cuando se reemplaza en una clase derivada, borra todos los búferes de esta secuencia y hace que todos los datos almacenados en el búfer se escriban en el dispositivo subyacente.

System_CAPS_pubmethodFlushAsync()

Borra asincrónicamente todos los búferes de esta secuencia y hace que los datos almacenados en búfer se escriban en el dispositivo subyacente.

System_CAPS_pubmethodFlushAsync(CancellationToken)

Borra asincrónicamente todos los búferes del flujo actual, hace que todos los datos almacenados en el búfer se escriban en el dispositivo subyacente y supervisa las solicitudes de cancelación.

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetLifetimeService()

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodInitializeLifetimeService()

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_protmethodMemberwiseClone(Boolean)

Crea una copia superficial del actual MarshalByRefObject objeto.(Heredado de MarshalByRefObject).

System_CAPS_protmethodObjectInvariant()

Obsoleto. Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Proporciona compatibilidad con una clase Contract.

System_CAPS_pubmethodRead(Byte[], Int32, Int32)

Cuando se reemplaza en una clase derivada, se lee una secuencia de bytes en la secuencia actual y se hace avanzar la posición dentro de la secuencia el número de bytes leídos.

System_CAPS_pubmethodReadAsync(Byte[], Int32, Int32)

Lee asincrónicamente una secuencia de bytes de la secuencia actual y avanza la posición en esta secuencia según el número de bytes leídos.

System_CAPS_pubmethodReadAsync(Byte[], Int32, Int32, CancellationToken)

Lee de forma asincrónica una secuencia de bytes en la secuencia actual, se hace avanzar la posición dentro de la secuencia el número de bytes leídos y controla las solicitudes de cancelación.

System_CAPS_pubmethodReadByte()

Lee un byte de la secuencia y hace avanzar la posición de la secuencia en un byte, o devuelve -1 si está al final de la secuencia.

System_CAPS_pubmethodSeek(Int64, SeekOrigin)

Cuando se reemplaza en una clase derivada, se establece la posición dentro de la secuencia actual.

System_CAPS_pubmethodSetLength(Int64)

Cuando se reemplaza en una clase derivada, se establece la longitud de la secuencia actual.

System_CAPS_pubmethodSystem_CAPS_staticSynchronized(Stream)

Crea un contenedor seguro para subprocesos (sincronizado) alrededor del objeto Stream especificado.

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

System_CAPS_pubmethodWrite(Byte[], Int32, Int32)

Cuando se reemplaza en una clase derivada, se escribe una secuencia de bytes en la secuencia actual y se hace avanzar la posición actual dentro de la secuencia el número de bytes escritos.

System_CAPS_pubmethodWriteAsync(Byte[], Int32, Int32)

Escribe asincrónicamente una secuencia de bytes en la secuencia actual y avanza la posición actual en esta secuencia según el número de bytes escritos.

System_CAPS_pubmethodWriteAsync(Byte[], Int32, Int32, CancellationToken)

Escribe de forma asincrónica una secuencia de bytes en la secuencia actual, se hace avanzar la posición actual dentro de la secuencia el número de bytes escritos y controla las solicitudes de cancelación.

System_CAPS_pubmethodWriteByte(Byte)

Escribe un byte a la posición actual en la secuencia y avanza la posición de la secuencia en un byte.

NombreDescripción
System_CAPS_pubfieldSystem_CAPS_staticNull

Stream sin memoria auxiliar.

System_CAPS_noteNota

To view the .NET Framework source code for this type, see the Reference Sourcehttp://referencesource.microsoft.com/#mscorlib/system/io/stream.cs#f956b0c07e86df64. You can browse through the source code online, download the reference for offline viewing, and step through the sources (including patches and updates) during debugging; see instructionshttp://referencesource.microsoft.com/.

Stream is the abstract base class of all streams. A stream is an abstraction of a sequence of bytes, such as a file, an input/output device, an inter-process communication pipe, or a TCP/IP socket. The Stream class and its derived classes provide a generic view of these different types of input and output, and isolate the programmer from the specific details of the operating system and the underlying devices.

Streams involve three fundamental operations:

  • You can read from streams. Reading is the transfer of data from a stream into a data structure, such as an array of bytes.

  • You can write to streams. Writing is the transfer of data from a data structure into a stream.

  • Streams can support seeking. Seeking refers to querying and modifying the current position within a stream. Seek capability depends on the kind of backing store a stream has. For example, network streams have no unified concept of a current position, and therefore typically do not support seeking.

Some of the more commonly used streams that inherit from T:System.IO.Stream are T:System.IO.FileStream, and T:System.IO.MemoryStream.

Depending on the underlying data source or repository, streams might support only some of these capabilities. You can query a stream for its capabilities by using the P:System.IO.Stream.CanRead, P:System.IO.Stream.CanWrite, and P:System.IO.Stream.CanSeek properties of the T:System.IO.Stream class.

The M:System.IO.Stream.Read(System.Byte[],System.Int32,System.Int32) and M:System.IO.Stream.Write(System.Byte[],System.Int32,System.Int32) methods read and write data in a variety of formats. For streams that support seeking, use the M:System.IO.Stream.Seek(System.Int64,System.IO.SeekOrigin) and M:System.IO.Stream.SetLength(System.Int64) methods and the P:System.IO.Stream.Position and P:System.IO.Stream.Length properties to query and modify the current position and length of a stream.

This type implements the T:System.IDisposable interface. When you have finished using the type, you should dispose of it either directly or indirectly. To dispose of the type directly, call its M:System.IDisposable.Dispose method in a try/catch block. To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). For more information, see the “Using an Object that Implements IDisposable” section in the T:System.IDisposable interface topic.

Disposing a T:System.IO.Stream object flushes any buffered data, and essentially calls the M:System.IO.Stream.Flush method for you. M:System.IO.Stream.Dispose also releases operating system resources such as file handles, network connections, or memory used for any internal buffering. The T:System.IO.BufferedStream class provides the capability of wrapping a buffered stream around another stream in order to improve read and write performance.

Starting with the net_v45, the T:System.IO.Stream class includes async methods to simplify asynchronous operations. An async method contains Async in its name, such as M:System.IO.Stream.ReadAsync(System.Byte[],System.Int32,System.Int32), M:System.IO.Stream.WriteAsync(System.Byte[],System.Int32,System.Int32), M:System.IO.Stream.CopyToAsync(System.IO.Stream), and M:System.IO.Stream.FlushAsync(System.Threading.CancellationToken). These methods enable you to perform resource-intensive I/O operations without blocking the main thread. This performance consideration is particularly important in a win8_appname_long app or desktop_appname app where a time-consuming stream operation can block the UI thread and make your app appear as if it is not working. The async methods are used in conjunction with the async and await keywords in Visual Basic and C#.

When used in a win8_appname_long app, T:System.IO.Stream includes two extension methods: M:System.IO.WindowsRuntimeStreamExtensions.AsInputStream(System.IO.Stream) and M:System.IO.WindowsRuntimeStreamExtensions.AsOutputStream(System.IO.Stream). These methods convert a T:System.IO.Stream object to a stream in the wrt. You can also convert a stream in the wrt to a T:System.IO.Stream object by using the M:System.IO.WindowsRuntimeStreamExtensions.AsStreamForRead(Windows.Storage.Streams.IInputStream) and M:System.IO.WindowsRuntimeStreamExtensions.AsStreamForWrite(Windows.Storage.Streams.IOutputStream) methods. For more information, see How to: Convert Between .NET Framework Streams and Windows Runtime Streams

Some stream implementations perform local buffering of the underlying data to improve performance. For such streams, you can use the M:System.IO.Stream.Flush or M:System.IO.Stream.FlushAsync method to clear any internal buffers and ensure that all data has been written to the underlying data source or repository.

If you need a stream with no backing store (also known as a bit bucket), use the F:System.IO.Stream.Null field to retrieve an instance of a stream that is designed for this purpose.

Notas para implementadores:

When you implement a derived class of T:System.IO.Stream, you must provide implementations for the M:System.IO.Stream.Read(System.Byte[],System.Int32,System.Int32) and M:System.IO.Stream.Write(System.Byte[],System.Int32,System.Int32) methods. The asynchronous methods M:System.IO.Stream.ReadAsync(System.Byte[],System.Int32,System.Int32), M:System.IO.Stream.WriteAsync(System.Byte[],System.Int32,System.Int32), and M:System.IO.Stream.CopyToAsync(System.IO.Stream) use the synchronous methods M:System.IO.Stream.Read(System.Byte[],System.Int32,System.Int32) and M:System.IO.Stream.Write(System.Byte[],System.Int32,System.Int32) in their implementations. Therefore, your implementations of M:System.IO.Stream.Read(System.Byte[],System.Int32,System.Int32) and M:System.IO.Stream.Write(System.Byte[],System.Int32,System.Int32) will work correctly with the asynchronous methods. The default implementations of M:System.IO.Stream.ReadByte and M:System.IO.Stream.WriteByte(System.Byte) create a new single-element byte array, and then call your implementations of M:System.IO.Stream.Read(System.Byte[],System.Int32,System.Int32) and M:System.IO.Stream.Write(System.Byte[],System.Int32,System.Int32). When you derive from T:System.IO.Stream, we recommend that you override these methods to access your internal buffer, if you have one, for substantially better performance. You must also provide implementations of P:System.IO.Stream.CanRead, P:System.IO.Stream.CanSeek, P:System.IO.Stream.CanWrite, M:System.IO.Stream.Flush, P:System.IO.Stream.Length, P:System.IO.Stream.Position, M:System.IO.Stream.Seek(System.Int64,System.IO.SeekOrigin), and M:System.IO.Stream.SetLength(System.Int64).

Do not override the M:System.IO.Stream.Close method, instead, put all the T:System.IO.Stream cleanup logic in the M:System.IO.Stream.Dispose(System.Boolean) method. For more information, see Implementing a Dispose Method.

The following example demonstrates how to use two T:System.IO.FileStream objects to asynchronously copy the files from one directory to another directory. The T:System.IO.FileStream class derives from the T:System.IO.Stream class. Notice that the E:System.Web.UI.WebControls.Button.Click event handler for the T:System.Windows.Controls.Button control is marked with the async modifier because it calls an asynchronous method.

No hay ningún ejemplo de código disponible o este idioma no es compatible.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: