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
|
MemoryStream (Clase)
Crea una secuencia cuyo almacén de respaldo es la memoria.
Ensamblado: mscorlib (en mscorlib.dll)
El tipo MemoryStream expone los siguientes miembros.
| Nombre | Descripción | |
|---|---|---|
|
MemoryStream() | Inicializa una nueva instancia de la clase MemoryStream con una capacidad expansible inicializada con un valor cero. |
|
MemoryStream(Byte[]) | Inicializa una nueva instancia invariable de la clase MemoryStream de acuerdo con la matriz de bytes especificada. |
|
MemoryStream(Int32) | Inicializa una nueva instancia de la clase MemoryStream con una capacidad expansible inicializada según lo especificado. |
|
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. |
|
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. |
|
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. |
|
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. |
| Nombre | Descripción | |
|---|---|---|
|
CanRead | Obtiene un valor que indica si la secuencia actual admite lectura. (Invalida a Stream.CanRead). |
|
CanSeek | Obtiene un valor que indica si la secuencia actual admite operaciones Seek. (Invalida a Stream.CanSeek). |
|
CanTimeout | Obtiene un valor que determina si se puede agotar el tiempo de espera de la secuencia actual. (Se hereda de Stream). |
|
CanWrite | Obtiene un valor que indica si la secuencia actual admite escritura. (Invalida a Stream.CanWrite). |
|
Capacity | Obtiene o establece el número de bytes asignados a esta secuencia. |
|
Length | Obtiene la longitud de la secuencia en bytes. (Invalida a Stream.Length). |
|
Position | Obtiene o establece la posición actual dentro de la secuencia. (Invalida a Stream.Position). |
|
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). |
|
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). |
| Nombre | Descripción | |
|---|---|---|
|
BeginRead | Comienza una operación de lectura asincrónica. (Se hereda de Stream). |
|
BeginWrite | Comienza una operación de escritura asincrónica. (Se hereda de Stream). |
|
Close | Cierra la secuencia actual y libera todos los recursos (como sockets e identificadores de archivo) asociados a ésta. (Se hereda de Stream). |
|
CopyTo(Stream) | Lee los bytes de la secuencia actual y los escribe en una secuencia de destino. (Se hereda de Stream). |
|
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). |
|
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). |
|
CreateWaitHandle | Obsoleto. Asigna un objeto WaitHandle. (Se hereda de Stream). |
|
Dispose() | Libera todos los recursos utilizados por el objeto Stream. (Se hereda de Stream). |
|
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)). |
|
EndRead | Espera a que se complete la lectura asincrónica que se encuentra pendiente. (Se hereda de Stream). |
|
EndWrite | Finaliza una operación de escritura asincrónica. (Se hereda de Stream). |
|
Equals(Object) | Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object). |
|
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). |
|
Flush | Reemplaza Stream.Flush para que no se realice ninguna acción. (Invalida a Stream.Flush()). |
|
GetBuffer | Devuelve la matriz de bytes sin signo a partir de la cual se creó esta secuencia. |
|
GetHashCode | Actúa como función hash para un tipo concreto. (Se hereda de Object). |
|
GetLifetimeService | Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia. (Se hereda de MarshalByRefObject). |
|
GetType | Obtiene el objeto Type de la instancia actual. (Se hereda de Object). |
|
InitializeLifetimeService | Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia. (Se hereda de MarshalByRefObject). |
|
MemberwiseClone() | Crea una copia superficial del objeto Object actual. (Se hereda de Object). |
|
MemberwiseClone(Boolean) | Crea una copia superficial del objeto MarshalByRefObject actual. (Se hereda de MarshalByRefObject). |
|
ObjectInvariant | Infraestructura. Proporciona compatibilidad con una clase Contract. (Invalida a Stream.ObjectInvariant()). |
|
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)). |
|
ReadByte | Lee un byte de la secuencia actual. (Invalida a Stream.ReadByte()). |
|
Seek | Establece la posición dentro de la secuencia actual en el valor especificado. (Invalida a Stream.Seek(Int64, SeekOrigin)). |
|
SetLength | Establece la longitud de la secuencia actual en el valor especificado. (Invalida a Stream.SetLength(Int64)). |
|
ToArray | Escribe el contenido de la secuencia en una matriz de bytes, independientemente de la propiedad Position. |
|
ToString | Devuelve una cadena que representa el objeto actual. (Se hereda de Object). |
|
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)). |
|
WriteByte | Escribe un byte en la posición actual de la secuencia actual. (Invalida a Stream.WriteByte(Byte)). |
|
WriteTo | Escribe el contenido completo de esta secuencia de memoria en otra secuencia. |
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); } } }
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.