Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

MemoryStream-Klasse

 

Veröffentlicht: Oktober 2016

Erstellt einen Stream, der den Arbeitsspeicher als Hintergrundspeicher verwendet.

Um den .NET Framework-Quellcode für diesen Typ zu durchsuchen, finden Sie unter der Reference Source.

Namespace:   System.IO
Assembly:  mscorlib (in mscorlib.dll)

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

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

NameBeschreibung
System_CAPS_pubmethodMemoryStream()

Initialisiert eine neue Instanz der MemoryStream-Klasse mit einer erweiterbaren Kapazität, die mit 0 (null) initialisiert wurde.

System_CAPS_pubmethodMemoryStream(Byte[])

Initialisiert anhand des angegebenen Bytearrays eine neue Instanz der MemoryStream-Klasse, deren Größe nicht geändert werden kann.

System_CAPS_pubmethodMemoryStream(Byte[], Boolean)

Initialisiert anhand des angegebenen Bytearrays eine neue Instanz der MemoryStream-Klasse, deren Größe nicht geändert werden kann, wobei die CanWrite-Eigenschaft wie angegeben festgelegt wird.

System_CAPS_pubmethodMemoryStream(Byte[], Int32, Int32)

Initialisiert anhand des angegebenen Bereichs (Indexes) eines Bytearrays eine neue Instanz der MemoryStream-Klasse, deren Größe nicht geändert werden kann.

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

Initialisiert anhand des angegebenen Bereichs eines Bytearrays eine neue Instanz der MemoryStream-Klasse, deren Größe nicht geändert werden kann, wobei die CanWrite-Eigenschaft wie angegeben festgelegt wurde.

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

Initialisiert eine neue Instanz der MemoryStream-Klasse auf der Grundlage des angegebenen Bereichs eines Bytearrays, wobei die CanWrite-Eigenschaft und die Möglichkeit zum Aufruf von GetBuffer wie angegeben festgelegt werden.

System_CAPS_pubmethodMemoryStream(Int32)

Initialisiert eine neue Instanz der MemoryStream-Klasse mit einer erweiterbaren Kapazität, die mit dem angegebenen Wert initialisiert wird.

NameBeschreibung
System_CAPS_pubpropertyCanRead

Ruft einen Wert ab, der angibt, ob der aktuelle Stream Lesevorgänge unterstützt.(Überschreibt Stream.CanRead.)

System_CAPS_pubpropertyCanSeek

Ruft einen Wert ab, der angibt, ob der aktuelle Stream Suchvorgänge unterstützt.(Überschreibt Stream.CanSeek.)

System_CAPS_pubpropertyCanTimeout

Ruft einen Wert ab, der bestimmt, ob für den aktuellen Stream ein Timeout möglich ist.(Geerbt von „Stream“.)

System_CAPS_pubpropertyCanWrite

Ruft einen Wert ab, der angibt, ob der aktuelle Stream Schreibvorgänge unterstützt.(Überschreibt Stream.CanWrite.)

System_CAPS_pubpropertyCapacity

Ruft die Anzahl der für diesen Stream reservierten Bytes ab oder legt diese fest.

System_CAPS_pubpropertyLength

Ruft die Länge des Streams in Bytes ab.(Überschreibt Stream.Length.)

System_CAPS_pubpropertyPosition

Ruft die aktuelle Position im Stream ab oder legt diese fest.(Überschreibt Stream.Position.)

System_CAPS_pubpropertyReadTimeout

Ruft einen Wert in Millisekunden ab, der bestimmt, wie lange der Stream versucht, Lesevorgänge durchzuführen, bevor ein Timeout auftritt, oder legt diesen fest.(Geerbt von „Stream“.)

System_CAPS_pubpropertyWriteTimeout

Ruft einen Wert in Millisekunden ab, der bestimmt, wie lange der Stream versucht, Schreibvorgänge durchzuführen, bevor ein Timeout auftritt, oder legt diesen fest.(Geerbt von „Stream“.)

NameBeschreibung
System_CAPS_pubmethodBeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

Beginnt einen asynchronen Lesevorgang. (Verwenden Sie stattdessen ReadAsync. Weitere Informationen finden Sie im Abschnitt "Hinweise".)(Geerbt von „Stream“.)

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

Beginnt einen asynchronen Schreibvorgang. (Verwenden Sie stattdessen WriteAsync. Weitere Informationen finden Sie im Abschnitt "Hinweise".)(Geerbt von „Stream“.)

System_CAPS_pubmethodClose()

Schließt den aktuellen Stream und gibt alle dem aktuellen Stream zugeordneten Ressourcen frei (z. B. Sockets und Dateihandles). Anstatt diese Methode aufzurufen, stellen Sie sicher, dass der Stream ordnungsgemäß freigegeben wird.(Geerbt von „Stream“.)

System_CAPS_pubmethodCopyTo(Stream)

Liest alle Bytes aus dem aktuellen Stream und schreibt sie in einen anderen Datenstrom.(Geerbt von „Stream“.)

System_CAPS_pubmethodCopyTo(Stream, Int32)

Liest alles Bytes aus dem aktuellen Datenstrom und schreibt sie unter Verwendung einer angegebenen Puffergröße in einen anderen Datenstrom.(Geerbt von „Stream“.)

System_CAPS_pubmethodCopyToAsync(Stream)

Liest die Bytes asynchron aus dem aktuellen Stream und schreibt sie in einen anderen Stream.(Geerbt von „Stream“.)

System_CAPS_pubmethodCopyToAsync(Stream, Int32)

Liest die Bytes asynchron aus dem aktuellen Stream und schreibt sie unter Verwendung einer angegebenen Puffergröße in einen anderen Stream.(Geerbt von „Stream“.)

System_CAPS_pubmethodCopyToAsync(Stream, Int32, CancellationToken)

Liest alle Bytes asynchron aus dem aktuellen Stream und schreibt sie unter Verwendung einer angegebenen Puffergröße und eines Abbruchtokens in einen anderen Stream.(Überschreibt Stream.CopyToAsync(Stream, Int32, CancellationToken).)

System_CAPS_pubmethodCreateObjRef(Type)

Erstellt ein Objekt, das alle relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt verwendet die enthält.(Geerbt von „MarshalByRefObject“.)

System_CAPS_protmethodCreateWaitHandle()

Veraltet. Reserviert ein WaitHandle-Objekt.(Geerbt von „Stream“.)

System_CAPS_pubmethodDispose()

Gibt alle vom Stream verwendeten Ressourcen frei.(Geerbt von „Stream“.)

System_CAPS_protmethodDispose(Boolean)

Gibt die von der MemoryStream-Klasse verwendeten nicht verwalteten Ressourcen frei und gibt (optional) auch die verwalteten Ressourcen frei.(Überschreibt Stream.Dispose(Boolean).)

System_CAPS_pubmethodEndRead(IAsyncResult)

Wartet, bis der ausstehende asynchrone Lesevorgang abgeschlossen ist. (Verwenden Sie stattdessen ReadAsync. Weitere Informationen finden Sie im Abschnitt "Hinweise".)(Geerbt von „Stream“.)

System_CAPS_pubmethodEndWrite(IAsyncResult)

Beendet einen asynchronen Schreibvorgang. (Verwenden Sie stattdessen WriteAsync. Weitere Informationen finden Sie im Abschnitt "Hinweise".)(Geerbt von „Stream“.)

System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Geerbt von „Object“.)

System_CAPS_protmethodFinalize()

Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Geerbt von „Object“.)

System_CAPS_pubmethodFlush()

Überschreibt die Stream.Flush-Methode, sodass keine Aktion durchgeführt wird.(Überschreibt Stream.Flush().)

System_CAPS_pubmethodFlushAsync()

Löscht sämtliche Puffer für diesen Stream asynchron und veranlasst die Ausgabe aller gepufferten Daten an das zugrunde liegende Gerät.(Geerbt von „Stream“.)

System_CAPS_pubmethodFlushAsync(CancellationToken)

Löscht sämtliche Puffer für diesen Stream asynchron und überwacht Abbruchanforderungen.(Überschreibt Stream.FlushAsync(CancellationToken).)

System_CAPS_pubmethodGetBuffer()

Gibt das Array vorzeichenloser Bytes zurück, aus dem dieser Stream erstellt wurde.

System_CAPS_pubmethodGetHashCode()

Fungiert als die Standardhashfunktion.(Geerbt von „Object“.)

System_CAPS_pubmethodGetLifetimeService()

Ruft das Dienstobjekt für aktuellen Lebensdauer, das steuert, die lebensdauerrichtlinie für diese Instanz ab.(Geerbt von „MarshalByRefObject“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodInitializeLifetimeService()

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.(Geerbt von „MarshalByRefObject“.)

System_CAPS_protmethodMemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.(Geerbt von „Object“.)

System_CAPS_protmethodMemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject Objekt.(Geerbt von „MarshalByRefObject“.)

System_CAPS_protmethodObjectInvariant()

Veraltet. Diese API unterstützt die Produkt Infrastruktur und sollte nicht direkt aus dem Code verwendet werden. Bietet Unterstützung für einen Contract.(Geerbt von „Stream“.)

System_CAPS_pubmethodRead(Byte[], Int32, Int32)

Liest einen Byteblock aus dem aktuellen Stream und schreibt die Daten in einen Puffer.(Überschreibt Stream.Read(Byte[], Int32, Int32).)

System_CAPS_pubmethodReadAsync(Byte[], Int32, Int32)

Liest eine Bytesequenz asynchron aus dem aktuellen Stream und setzt die Position in diesem Stream um die Anzahl der gelesenen Bytes nach vorn.(Geerbt von „Stream“.)

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

Liest eine Folge von Bytes asynchron aus dem aktuellen Stream, erhöht die Position im Stream um die Anzahl der gelesenen Bytes und überwacht Abbruchanfragen.(Überschreibt Stream.ReadAsync(Byte[], Int32, Int32, CancellationToken).)

System_CAPS_pubmethodReadByte()

Liest ein Byte aus dem aktuellen Stream.(Überschreibt Stream.ReadByte().)

System_CAPS_pubmethodSeek(Int64, SeekOrigin)

Legt die Position im aktuellen Stream auf den angegebenen Wert fest.(Überschreibt Stream.Seek(Int64, SeekOrigin).)

System_CAPS_pubmethodSetLength(Int64)

Legt die Länge des aktuellen Streams auf den angegebenen Wert fest.(Überschreibt Stream.SetLength(Int64).)

System_CAPS_pubmethodToArray()

Schreibt den Inhalt des Streams in ein Bytearray, unabhängig von der Position-Eigenschaft.

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

System_CAPS_pubmethodTryGetBuffer(ArraySegment<Byte>)

Gibt das Array vorzeichenloser Bytes zurück, aus dem dieser Stream erstellt wurde. Der Rückgabewert gibt an, ob die Konvertierung erfolgreich abgeschlossen wurde.

System_CAPS_pubmethodWrite(Byte[], Int32, Int32)

Schreibt einen Byteblock mit den aus einem Puffer gelesenen Daten in den aktuellen Stream.(Überschreibt Stream.Write(Byte[], Int32, Int32).)

System_CAPS_pubmethodWriteAsync(Byte[], Int32, Int32)

Schreibt eine Bytesequenz asynchron in den aktuellen Stream und setzt die aktuelle Position in diesem Stream um die Anzahl der geschriebenen Bytes nach vorn.(Geerbt von „Stream“.)

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

Schreibt beim Überschreiben in einer abgeleiteten Klasse eine Folge von Bytes asynchron in den aktuellen Stream und erhöht die aktuelle Position im Stream um die Anzahl der geschriebenen Bytes und überwacht Abbruchanforderungen.(Überschreibt Stream.WriteAsync(Byte[], Int32, Int32, CancellationToken).)

System_CAPS_pubmethodWriteByte(Byte)

Schreibt ein Byte an die aktuelle Position im aktuellen Stream.(Überschreibt Stream.WriteByte(Byte).)

System_CAPS_pubmethodWriteTo(Stream)

Schreibt den gesamten Inhalt dieses Arbeitsspeicherstreams in einen anderen Stream.

System_CAPS_noteHinweis

Die .NET Framework-Quellcodes für diesen Typ finden Sie unter der Reference Source. Sie können den Quellcode online Durchsuchen, Referenz für die Offlineanzeige herunterladen und schrittweise durchlaufen (inklusive Patches und Updates) während des Debuggens; see instructions.

Die aktuelle Position eines Streams ist die Position, an der der nächste Lese- oder Schreibvorgang, ausgeführt werden kann. Die aktuelle Position kann abgerufen oder festgelegt werden, über die Seek Methode. Wenn eine neue Instanz der MemoryStream erstellt wurde, werden die aktuelle Position auf 0 (null) festgelegt.

System_CAPS_importantWichtig

Dieser Typ implementiert die IDisposable Schnittstelle. Wenn Sie mit dem Datentyp haben, sollten Sie es entweder direkt oder indirekt freigeben. Damit des Typs direkt freigegeben werden, rufen Sie seine Dispose -Methode in eine try/catch Block. Verwenden, um es indirekt freigegeben werden, z. B. ein Sprachkonstrukt using (in c#) oder Using (in Visual Basic). Weitere Informationen finden Sie im Abschnitt "Verwenden eines Objekts, die implementiert IDisposable" in der IDisposable Thema zur Schnittstelle.

Arbeitsspeicherstreams, die mit einem Array vorzeichenloser Bytes erstellt bieten einen unveränderbaren Stream der Daten. Ein Bytearray verwenden, können Sie weder Anfügen an noch den Stream zu verkleinern, obwohl möglicherweise so ändern Sie den vorhandenen Inhalt abhängig von den Parametern, die an den Konstruktor übergeben werden können. Bei leeren Arbeitsspeicherstreams können geändert werden kann, werden und in geschrieben und gelesen werden.

Wenn ein MemoryStream Objekt in eine ResX-Datei oder eine RESOURCES-Datei hinzugefügt wird, rufen Sie die GetStream Methode zur Laufzeit abgerufen werden.

Wenn ein MemoryStream Objekt wird in einer Ressourcendatei, die tatsächlich als serialisiert serialisiert eine UnmanagedMemoryStream. Dieses Verhalten bietet eine bessere Leistung als auch die Möglichkeit, um einen Zeiger auf die Daten direkt, ohne über Stream Methoden.

Im folgenden Codebeispiel wird veranschaulicht, wie zum Lesen und Schreiben von Daten mithilfe von Arbeitsspeicher als Sicherungsspeicher.

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);
        }
    }
}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: