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 MemoryStream

 

Publicado: octubre de 2016

Crea una secuencia cuya memoria auxiliar es la memoria.

Para examinar el código fuente de .NET Framework para este tipo, vea la Reference Source.

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

System.Object
  System.MarshalByRefObject
    System.IO.Stream
      System.IO.MemoryStream

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class MemoryStream : Stream

NombreDescripción
System_CAPS_pubmethodMemoryStream()

Inicializa una nueva instancia de la clase MemoryStream con una capacidad expansible inicializada con un valor cero.

System_CAPS_pubmethodMemoryStream(Byte[])

Inicializa una nueva instancia invariable de la clase MemoryStream de acuerdo con la matriz de bytes especificada.

System_CAPS_pubmethodMemoryStream(Byte[], Boolean)

Inicializa una nueva instancia invariable de la clase MemoryStream según la matriz de bytes especificada con la propiedad CanWrite establecida como se ha indicado.

System_CAPS_pubmethodMemoryStream(Byte[], Int32, Int32)

Inicializa una nueva instancia invariable de la clase MemoryStream según la región especificada (índice) de una matriz de bytes.

System_CAPS_pubmethodMemoryStream(Byte[], Int32, Int32, Boolean)

Inicializa una nueva instancia invariable de la clase MemoryStream según la región especificada de una matriz de bytes, con la propiedad CanWrite establecida como se ha indicado.

System_CAPS_pubmethodMemoryStream(Byte[], Int32, Int32, Boolean, Boolean)

Inicializa una nueva instancia de la clase MemoryStream según la región especificada de una matriz de bytes, con la propiedad CanWrite establecida como se ha indicado y la posibilidad de llamar a GetBuffer establecida según lo especificado.

System_CAPS_pubmethodMemoryStream(Int32)

Inicializa una nueva instancia de la clase MemoryStream con una capacidad expansible inicializada según lo especificado.

NombreDescripción
System_CAPS_pubpropertyCanRead

Obtiene un valor que indica si la secuencia actual admite lectura.(Invalida Stream.CanRead).

System_CAPS_pubpropertyCanSeek

Obtiene un valor que indica si la secuencia actual admite búsquedas.(Invalida Stream.CanSeek).

System_CAPS_pubpropertyCanTimeout

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

System_CAPS_pubpropertyCanWrite

Obtiene un valor que indica si la secuencia actual admite escritura.(Invalida Stream.CanWrite).

System_CAPS_pubpropertyCapacity

Obtiene o establece el número de bytes asignados a esta secuencia.

System_CAPS_pubpropertyLength

Obtiene la longitud de la secuencia en bytes.(Invalida Stream.Length).

System_CAPS_pubpropertyPosition

Obtiene o establece la posición actual dentro de la secuencia.(Invalida Stream.Position).

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.(Heredado de Stream).

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.(Heredado de Stream).

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).(Heredado de Stream).

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).(Heredado de Stream).

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.(Heredado de Stream).

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. (Heredado de Stream).

System_CAPS_pubmethodCopyTo(Stream, Int32)

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

System_CAPS_pubmethodCopyToAsync(Stream)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia.(Heredado de Stream).

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.(Heredado de Stream).

System_CAPS_pubmethodCopyToAsync(Stream, Int32, CancellationToken)

Lee asincrónicamente todos los bytes de la secuencia actual y los escribe en otra secuencia, utilizando el tamaño de búfer especificado y el token de cancelación.(Invalida Stream.CopyToAsync(Stream, Int32, CancellationToken)).

System_CAPS_pubmethodCreateObjRef(Type)

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

System_CAPS_protmethodCreateWaitHandle()

Obsoleto. Asigna un objeto WaitHandle.(Heredado de Stream).

System_CAPS_pubmethodDispose()

Libera todos los recursos que usa Stream.(Heredado de Stream).

System_CAPS_protmethodDispose(Boolean)

Libera los recursos no administrados usados que usa la clase MemoryStream y, de forma opcional, libera los recursos administrados.(Invalida Stream.Dispose(Boolean)).

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).(Heredado de Stream).

System_CAPS_pubmethodEndWrite(IAsyncResult)

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

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()

Reemplaza el método Stream.Flush de modo que no se realice ninguna acción.(Invalida Stream.Flush()).

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.(Heredado de Stream).

System_CAPS_pubmethodFlushAsync(CancellationToken)

De forma asincrónica borra todos los búferes de esta secuencia y supervisa las solicitudes de cancelación.(Invalida Stream.FlushAsync(CancellationToken)).

System_CAPS_pubmethodGetBuffer()

Devuelve la matriz de bytes sin signo a partir de la cual se creó esta secuencia.

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 elemento 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.(Heredado de Stream).

System_CAPS_pubmethodRead(Byte[], Int32, Int32)

Lee un bloque de bytes de la secuencia actual y escribe los datos en un búfer.(Invalida Stream.Read(Byte[], Int32, Int32)).

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.(Heredado de Stream).

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.(Invalida Stream.ReadAsync(Byte[], Int32, Int32, CancellationToken)).

System_CAPS_pubmethodReadByte()

Lee un byte de la secuencia actual.(Invalida Stream.ReadByte()).

System_CAPS_pubmethodSeek(Int64, SeekOrigin)

Establece la posición dentro de la secuencia actual en el valor especificado.(Invalida Stream.Seek(Int64, SeekOrigin)).

System_CAPS_pubmethodSetLength(Int64)

Establece la longitud de la secuencia actual en el valor especificado.(Invalida Stream.SetLength(Int64)).

System_CAPS_pubmethodToArray()

Escribe el contenido de la secuencia en una matriz de bytes, independientemente de la propiedad Position.

System_CAPS_pubmethodToString()

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

System_CAPS_pubmethodTryGetBuffer(ArraySegment<Byte>)

Devuelve la matriz de bytes sin signo a partir de la cual se creó esta secuencia. El valor devuelto indica si la conversión se realizó correctamente.

System_CAPS_pubmethodWrite(Byte[], Int32, Int32)

Escribe un bloque de bytes en la secuencia actual usando los datos leídos en un búfer.(Invalida Stream.Write(Byte[], Int32, Int32)).

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.(Heredado de Stream).

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.(Invalida Stream.WriteAsync(Byte[], Int32, Int32, CancellationToken)).

System_CAPS_pubmethodWriteByte(Byte)

Escribe un byte en la posición actual de la secuencia actual.(Invalida Stream.WriteByte(Byte)).

System_CAPS_pubmethodWriteTo(Stream)

Escribe el contenido completo de esta secuencia de memoria en otra secuencia.

System_CAPS_noteNota

Para ver el código fuente de .NET Framework para este tipo, consulte el Reference Source. Puede examinar el código fuente en línea, descargue la referencia para verla sin conexión y recorrer (incluidas las revisiones y actualizaciones) durante la depuración; see instructions.

La posición actual de una secuencia es la posición en la que la siguiente lectura o la operación de escritura llevará a cabo. La posición actual se puede recuperar o establecer a través de la Seek (método). Cuando una nueva instancia de MemoryStream se crea la actual posición está establecida en cero.

System_CAPS_importantImportante

Este tipo implementa la IDisposable interfaz. Cuando haya terminado de utilizar el tipo, debería eliminar, directa o indirectamente. Para deshacerse del tipo directamente, llame a su Dispose método en un try/catch bloque. Para deshacerse de él indirectamente, usar una construcción de lenguaje como using (en C#) o Using (en Visual Basic). Para obtener más información, consulte la sección "Uso de un objeto que implementa IDisposable" en el IDisposable tema de la interfaz.

Las secuencias de memoria creadas con una matriz de bytes sin signo proporcionan una secuencia de datos invariable. Cuando se utiliza una matriz de bytes, no puede anexar a ni reducir el flujo, aunque es posible que pueda modificar el contenido existente dependiendo de los parámetros pasados al constructor. Secuencias de memoria vacías son de tamaño variable y pueden escritas y se leen desde.

Si un MemoryStream objeto se agrega a un archivo ResX o un archivo .resources, llame a la GetStream método en tiempo de ejecución para recuperarlo.

Si un MemoryStream objeto se serializa en un archivo de recursos que realmente se serializará como un UnmanagedMemoryStream. Este comportamiento proporciona un mejor rendimiento, así como la capacidad para obtener un puntero a los datos directamente, sin tener que pasar por Stream métodos.

En el ejemplo de código siguiente se muestra cómo leer y escribir datos utilizando la memoria como almacén de respaldo.

using System;
using System.IO;
using System.Text;

class MemStream
{
    static void Main()
    {
        int count;
        byte[] byteArray;
        char[] charArray;
        UnicodeEncoding uniEncoding = new UnicodeEncoding();

        // Create the data to write to the stream.
        byte[] firstString = uniEncoding.GetBytes(
            "Invalid file path characters are: ");
        byte[] secondString = uniEncoding.GetBytes(
            Path.GetInvalidPathChars());

        using(MemoryStream memStream = new MemoryStream(100))
        {
            // Write the first string to the stream.
            memStream.Write(firstString, 0 , firstString.Length);

            // Write the second string to the stream, byte by byte.
            count = 0;
            while(count < secondString.Length)
            {
                memStream.WriteByte(secondString[count++]);
            }

            // Write the stream properties to the console.
            Console.WriteLine(
                "Capacity = {0}, Length = {1}, Position = {2}\n",
                memStream.Capacity.ToString(),
                memStream.Length.ToString(),
                memStream.Position.ToString());

            // Set the position to the beginning of the stream.
            memStream.Seek(0, SeekOrigin.Begin);

            // Read the first 20 bytes from the stream.
            byteArray = new byte[memStream.Length];
            count = memStream.Read(byteArray, 0, 20);

            // Read the remaining bytes, byte by byte.
            while(count < memStream.Length)
            {
                byteArray[count++] =
                    Convert.ToByte(memStream.ReadByte());
            }

            // Decode the byte array into a char array
            // and write it to the console.
            charArray = new char[uniEncoding.GetCharCount(
                byteArray, 0, count)];
            uniEncoding.GetDecoder().GetChars(
                byteArray, 0, count, charArray, 0);
            Console.WriteLine(charArray);
        }
    }
}

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: