Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original
Personas que lo han encontrado útil: 1 de 1 - Valorar este tema

MemoryStream (Clase)

Crea una secuencia cuyo almacén de respaldo es la memoria.

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

Espacio de nombres:  System.IO
Ensamblado:  mscorlib (en mscorlib.dll)
[SerializableAttribute]
[ComVisibleAttribute(true)]
public class MemoryStream : Stream

El tipo MemoryStream expone los siguientes miembros.

  Nombre Descripción
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif MemoryStream() Inicializa una nueva instancia de la clase MemoryStream con una capacidad expansible inicializada con un valor cero.
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif MemoryStream(Byte[]) Inicializa una nueva instancia invariable de la clase MemoryStream de acuerdo con la matriz de bytes especificada.
Método público Compatible con XNA Framework MemoryStream(Int32) Inicializa una nueva instancia de la clase MemoryStream con una capacidad expansible inicializada según lo especificado.
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif MemoryStream(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.
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif MemoryStream(Byte[], Int32, Int32) Inicializa una nueva instancia invariable de la clase MemoryStream según la región especificada (índice) de una matriz de bytes.
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif MemoryStream(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.
Método público Compatible con XNA Framework MemoryStream(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.
Arriba
  Nombre Descripción
Propiedad pública Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif CanRead Obtiene un valor que indica si la secuencia actual admite lectura. (Invalida a Stream.CanRead).
Propiedad pública Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif CanSeek Obtiene un valor que indica si la secuencia actual admite operaciones Seek. (Invalida a Stream.CanSeek).
Propiedad pública Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif CanTimeout Obtiene un valor que determina si se puede agotar el tiempo de espera de la secuencia actual. (Se hereda de Stream).
Propiedad pública Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif CanWrite Obtiene un valor que indica si la secuencia actual admite escritura. (Invalida a Stream.CanWrite).
Propiedad pública Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif Capacity Obtiene o establece el número de bytes asignados a esta secuencia.
Propiedad pública Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif Length Obtiene la longitud de la secuencia en bytes. (Invalida a Stream.Length).
Propiedad pública Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif Position Obtiene o establece la posición actual dentro de la secuencia. (Invalida a Stream.Position).
Propiedad pública Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif ReadTimeout 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. (Se hereda de Stream).
Propiedad pública Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif WriteTimeout 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. (Se hereda de Stream).
Arriba
  Nombre Descripción
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif BeginRead Comienza una operación de lectura asincrónica. (Se hereda de Stream).
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif BeginWrite Comienza una operación de escritura asincrónica. (Se hereda de Stream).
Método público Compatible con XNA Framework Close Cierra la secuencia actual y libera todos los recursos (como sockets e identificadores de archivo) asociados a ésta. (Se hereda de Stream).
Método público CopyTo(Stream) Lee los bytes de la secuencia actual y los escribe en una secuencia de destino. (Se hereda de Stream).
Método público CopyTo(Stream, Int32) Lee todos los bytes de la secuencia actual y los escribe en una secuencia de destino, utilizando el tamaño de búfer especificado. (Se hereda de Stream).
Método público CreateObjRef Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto. (Se hereda de MarshalByRefObject).
Método protegido Compatible con XNA Framework CreateWaitHandle Obsoleto. Asigna un objeto WaitHandle. (Se hereda de Stream).
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif Dispose() Libera todos los recursos utilizados por el objeto Stream. (Se hereda de Stream).
Método protegido Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif Dispose(Boolean) Libera los recursos no administrados utilizados por la clase MemoryStream y, de forma opcional, libera los recursos administrados. (Invalida a Stream.Dispose(Boolean)).
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif EndRead Espera a que se complete la lectura asincrónica que se encuentra pendiente. (Se hereda de Stream).
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif EndWrite Finaliza una operación de escritura asincrónica. (Se hereda de Stream).
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif Equals(Object) Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegido Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif Flush Reemplaza Stream.Flush para que no se realice ninguna acción. (Invalida a Stream.Flush()).
Método público Compatible con XNA Framework GetBuffer Devuelve la matriz de bytes sin signo a partir de la cual se creó esta secuencia.
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif GetHashCode Actúa como función hash para un tipo concreto. (Se hereda de Object).
Método público GetLifetimeService Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia. (Se hereda de MarshalByRefObject).
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método público InitializeLifetimeService Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia. (Se hereda de MarshalByRefObject).
Método protegido Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif MemberwiseClone() Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método protegido MemberwiseClone(Boolean) Crea una copia superficial del objeto MarshalByRefObject actual. (Se hereda de MarshalByRefObject).
Método protegido ObjectInvariant Infraestructura. Proporciona compatibilidad con una clase Contract. (Invalida a Stream.ObjectInvariant()).
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif Read Lee un bloque de bytes de la secuencia actual y escribe los datos en un búfer. (Invalida a Stream.Read(Byte[], Int32, Int32)).
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif ReadByte Lee un byte de la secuencia actual. (Invalida a Stream.ReadByte()).
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif Seek Establece la posición dentro de la secuencia actual en el valor especificado. (Invalida a Stream.Seek(Int64, SeekOrigin)).
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif SetLength Establece la longitud de la secuencia actual en el valor especificado. (Invalida a Stream.SetLength(Int64)).
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif ToArray Escribe el contenido de la secuencia en una matriz de bytes, independientemente de la propiedad Position.
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif Write Escribe un bloque de bytes en la secuencia actual mediante el uso de datos leídos de un búfer. (Invalida a Stream.Write(Byte[], Int32, Int32)).
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif WriteByte Escribe un byte en la posición actual de la secuencia actual. (Invalida a Stream.WriteByte(Byte)).
Método público Compatible con XNA Framework 9a84386f.PortableClassLibrary(es-es,VS.100).gif WriteTo Escribe el contenido completo de esta secuencia de memoria en otra secuencia.
Arriba

La posición actual de una secuencia es la posición donde se llevará a cabo la siguiente operación de lectura o escritura. La posición actual puede recuperarse o establecerse mediante el método Seek. Al crear una nueva instancia de MemoryStream, la posición actual se establece en cero.

Las secuencias de memoria creadas con una matriz de bytes sin signo proporcionan una secuencia de datos que no es de tamaño variable. Al utilizar una matriz de bytes, no es posible anexar la secuencia ni reducirla, aunque tal vez sea posible modificar el contenido existente dependiendo de los parámetros pasados al constructor. Las secuencias de memoria vacías son de tamaño variable y se puede escribir y leer en ellas.

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

Si un objeto MemoryStream se serializa en un archivo de recursos, su serialización se realizará realmente como si fuera UnmanagedMemoryStream. Este comportamiento proporciona un mejor rendimiento, así como la capacidad de obtener directamente un puntero a los datos, sin necesidad de pasar por los métodos de Stream.

En el ejemplo de código siguiente se muestra la forma de 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);
        }
    }
}


.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Compatible con:

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Todos los miembros static (Shared en Visual Basic) públicos 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.
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar