Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
1 von 1 fanden dies hilfreich - Dieses Thema bewerten.

Stream-Klasse

Stellt eine allgemeine Ansicht einer Folge von Bytes bereit.

Namespace:  System.IO
Assembly:  mscorlib (in mscorlib.dll)
[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Stream : MarshalByRefObject, 
	IDisposable

Der Stream-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Geschützte MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsStreamInitialisiert eine neue Instanz der Stream-Klasse.
Zum Seitenanfang
  NameBeschreibung
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsCanReadRuft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob der aktuelle Stream Lesevorgänge unterstützt.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsCanSeekRuft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob der aktuelle Stream Suchvorgänge unterstützt.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsCanTimeoutRuft einen Wert ab, der bestimmt, ob für den aktuellen Stream ein Timeout möglich ist.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsCanWriteRuft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob der aktuelle Stream Schreibvorgänge unterstützt.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsLengthRuft beim Überschreiben in einer abgeleiteten Klasse die Länge des Streams in Bytes ab.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsPositionRuft beim Überschreiben in einer abgeleiteten Klasse die Position im aktuellen Stream ab oder legt diese fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReadTimeoutRuft einen Wert in Millisekunden ab, der bestimmt, wie lange der Stream versucht, Lesevorgänge durchzuführen, bevor ein Timeout auftritt, oder legt diesen fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsWriteTimeoutRuft einen Wert in Millisekunden ab, der bestimmt, wie lange der Stream versucht, Schreibvorgänge durchzuführen, bevor ein Timeout auftritt, oder legt diesen fest.
Zum Seitenanfang
  NameBeschreibung
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekBeginReadBeginnt einen asynchronen Lesevorgang. (Verwenden Sie stattdessen die ReadAsync-Methode. Weitere Informationen finden Sie im Abschnitt "Hinweise".)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekBeginWriteBeginnt einen asynchronen Schreibvorgang. (Verwenden Sie stattdessen WriteAsync. Weitere Informationen finden Sie im Abschnitt "Hinweise".)
Öffentliche MethodeUnterstützt von XNA FrameworkCloseSchließ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.
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsCopyTo(Stream)Liest alle Bytes aus dem aktuellen Stream und schreibt sie in einen anderen Datenstrom.
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsCopyTo(Stream, Int32)Liest alles Bytes aus dem aktuellen Datenstrom und schreibt sie unter Verwendung einer angegebenen Puffergröße in einen anderen Datenstrom.
Öffentliche MethodeUnterstützt in .NET für Windows Store-AppsCopyToAsync(Stream)Liest die Bytes asynchron aus dem aktuellen Stream und schreibt sie in einen anderen Stream.
Öffentliche MethodeUnterstützt in .NET für Windows Store-AppsCopyToAsync(Stream, Int32)Liest die Bytes asynchron aus dem aktuellen Stream und schreibt sie unter Verwendung einer angegebenen Puffergröße in einen anderen Stream.
Öffentliche MethodeUnterstützt in .NET für Windows Store-AppsCopyToAsync(Stream, Int32, CancellationToken)Liest die Bytes asynchron aus dem aktuellen Stream und schreibt sie unter Verwendung einer angegebenen Puffergröße und eines Abbruchtokens in einen anderen Stream.
Öffentliche MethodeCreateObjRefErstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind. (Von MarshalByRefObject geerbt.)
Geschützte MethodeUnterstützt von XNA FrameworkCreateWaitHandle Veraltet. Reserviert ein WaitHandle-Objekt.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsDispose()Gibt sämtliche vom Stream verwendeten Ressourcen frei.
Geschützte MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsDispose(Boolean)Gibt die vom Stream verwendeten nicht verwalteten Ressourcen und optional auch die verwalteten Ressourcen frei.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekEndReadWartet, bis der ausstehende asynchrone Lesevorgang abgeschlossen ist. (Verwenden Sie stattdessen die ReadAsync-Methode. Weitere Informationen finden Sie im Abschnitt "Hinweise".)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekEndWriteBeendet einen asynchronen Schreibvorgang. (Verwenden Sie stattdessen WriteAsync. Weitere Informationen finden Sie im Abschnitt "Hinweise".)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Geschützte MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsFlushLöscht beim Überschreiben in einer abgeleiteten Klasse alle Puffer für diesen Stream und veranlasst die Ausgabe aller gepufferten Daten an das zugrunde liegende Gerät.
Öffentliche MethodeUnterstützt in .NET für Windows Store-AppsFlushAsync()Löscht sämtliche Puffer für diesen Stream asynchron und veranlasst die Ausgabe aller gepufferten Daten an das zugrunde liegende Gerät.
Öffentliche MethodeUnterstützt in .NET für Windows Store-AppsFlushAsync(CancellationToken)Löscht alle Puffer für diesen Stream asynchron und veranlasst die Ausgabe aller gepufferten Daten an das zugrunde liegende Gerät und überwacht Abbruchanforderungen.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetHashCodeFungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Öffentliche MethodeGetLifetimeServiceRuft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert. (Von MarshalByRefObject geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeInitializeLifetimeServiceRuft ein Lebensdauerdienstobjekt ab, mit dem die Lebensdauerrichtlinien für diese Instanz gesteuert werden können. (Von MarshalByRefObject geerbt.)
Geschützte MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsMemberwiseClone()Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Geschützte MethodeMemberwiseClone(Boolean)Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts. (Von MarshalByRefObject geerbt.)
Geschützte MethodeObjectInvariantInfrastruktur. Veraltet. Bietet Unterstützung für das Contract.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReadLiest beim Überschreiben in einer abgeleiteten Klasse eine Folge von Bytes aus dem aktuellen Stream und erhöht die Position im Stream um die Anzahl der gelesenen Bytes.
Öffentliche MethodeUnterstützt in .NET für Windows Store-AppsReadAsync(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.
Öffentliche MethodeUnterstützt in .NET für Windows Store-AppsReadAsync(Byte[], Int32, Int32, CancellationToken)Liest eine Folge von Bytes asynchron aus aktuellen Stream, erhöht die Position im Stream um die Anzahl der gelesenen Bytes und überwacht Abbruchanfragen.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsReadByteLiest ein Byte aus dem Stream und erhöht die Position im Stream um ein Byte, oder gibt -1 zurück, wenn das Ende des Streams erreicht ist.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsSeekLegt beim Überschreiben in einer abgeleiteten Klasse die Position im aktuellen Stream fest.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsSetLengthLegt beim Überschreiben in einer abgeleiteten Klasse die Länge des aktuellen Streams fest.
Öffentliche MethodeStatischer MemberSynchronizedErstellt um das angegebene Stream-Objekt einen threadsicheren (synchronisierten) Wrapper.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsWriteSchreibt beim Überschreiben in einer abgeleiteten Klasse eine Folge von Bytes in den aktuellen Stream und erhöht die aktuelle Position im Stream um die Anzahl der geschriebenen Bytes.
Öffentliche MethodeUnterstützt in .NET für Windows Store-AppsWriteAsync(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.
Öffentliche MethodeUnterstützt in .NET für Windows Store-AppsWriteAsync(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.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsWriteByteSchreibt ein Byte an die aktuellen Position im Stream und erhöht die aktuelle Position im Stream um ein Byte.
Zum Seitenanfang
  NameBeschreibung
Öffentliche ErweiterungsmethodeUnterstützt in .NET für Windows Store-AppsAsInputStreamKonvertiert einen verwalteten Stream in .NET für Windows Store-Apps zu einem Eingabestream in Windows-Runtime. (Durch WindowsRuntimeStreamExtensions definiert.)
Öffentliche ErweiterungsmethodeUnterstützt in .NET für Windows Store-AppsAsOutputStreamKonvertiert einen verwalteten Stream in .NET für Windows Store-Apps zu einem Ausgabestream in Windows-Runtime. (Durch WindowsRuntimeStreamExtensions definiert.)
Zum Seitenanfang
  NameBeschreibung
Öffentliches FeldStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsNullEin Stream ohne Sicherungsspeicher.
Zum Seitenanfang

Streams umfassen drei grundlegende Vorgänge:

  • Streams können gelesen werden. Bei einem Lesevorgang werden Daten von einem Stream in eine Datenstruktur übertragen, beispielsweise in ein Bytearray.

  • In Streams kann geschrieben werden. Bei einem Schreibvorgang werden Daten aus einer Datenstruktur in einen Stream übertragen.

  • Streams können Suchvorgänge unterstützen. Das Suchen verweist das Abfragen und Ändern der aktuellen Position innerhalb eines Streams an. Die Suchfunktion ist von der Art des Sicherungsspeichers eines Streams abhängig. Netzwerkstreams verfügen beispielsweise über kein einheitliches Konzept einer aktuellen Position und unterstützen daher das Suchen in der Regel nicht.

Stream ist die abstrakte Basisklasse aller Streams. Ein Stream ist ein Modell für eine Folge von Bytes, wie eine Datei, ein Eingabe-/Ausgabegerät, eine Pipe für die Kommunikation zwischen Prozessen oder ein TCP/IP-Socket. Die Stream-Klasse und die abgeleiteten Klassen bieten eine allgemeine Ansicht dieser verschiedenen Typen der Eingabe und der Ausgabe und suchen den Programmierer von bestimmten Details des Betriebssystems und der zugrunde liegenden Geräte.

Abhängig von der zugrunde liegenden Datenquelle oder vom Repository unterstützen Streams möglicherweise nur einige dieser Funktionen. Sie können einen Stream für seine Funktionen abfragen, indem Sie CanRead, CanWrite verwenden, und CanSeek-Eigenschaften Stream darstellen.

Die Read-Methode und die Write-Methode lesen und schreiben Daten in verschiedenen Formaten. Bei Streams, die das Suchen unterstützen, verwenden Sie die Seek-Methode und die SetLength-Methode sowie die Position-Eigenschaft und die Length-Eigenschaft, um die aktuelle Position und Länge eines Streams abzufragen und zu bearbeiten.

Ab .NET Framework 4.5, umfasst die Stream-Klasse asynchrone Methoden, um asynchrone Vorgänge zu vereinfachen. Eine asynchrone Methode enthält Async in ihrem Namen, wie ReadAsync, WriteAsync, CopyToAsync und FlushAsync. Diese Methoden ermöglichen es Ihnen, ressourcenintensive E/A-Vorgänge auszuführen, ohne den Hauptthread zu blockieren. Diese Leistungsüberlegung ist in einer Windows Store App oder in Desktop App besonders wichtig, in der ein zeitaufwendiger Streamvorgang den UI-Thread blockieren und die App angezeigt werden kann, als ob er nicht funktioniert. Die asynchrone Methoden werden in Verbindung mit den async und await Schlüsselwörtern in Visual Basic und C# verwendet.

Wenn es in einer Windows Store App verwendet wird, enthält Stream zwei Erweiterungsmethoden ein: AsInputStream und AsOutputStream. Diese Methoden konvertieren Stream ein Objekt in einem Stream in Windows-Runtime. Sie können einen Stream in Windows-Runtime zu einem Stream-Objekt konvertieren, indem Sie die AsStreamForRead und AsStreamForWrite-Methoden ausführen.

Einige der Implementierungen von Streams speichern die zugrunde liegenden Daten lokal im Puffer, um die Leistung zu verbessern. Für solche Streams können Sie die Flush oder FlushAsync-Methode verwenden, um alle internen Puffer zu löschen und sicherzustellen, dass alle Daten der zugrunde liegenden Datenquelle oder das Repository geschrieben wurden.

Das Verwerfen eines Objekts Stream leert alle gepufferten Daten und ruft praktisch die Flush-Methode auf. Dispose gibt auch Betriebssystemressourcen z. B. Dateihandles, Netzwerkverbindungen oder den Arbeitsspeicher frei, der für eine interne Pufferung verwendet wurde. Durch die BufferedStream-Klasse kann ein gepufferter Stream Wrapper eines anderen Streams werden, sodass die Lese- und Schreibleistung verbessert wird.

Wenn Sie einen Stream ohne Sicherungsspeicher (auch als Bitbucket) benötigen, verwenden Sie das Null Feld, um eine Instanz eines Streams abzurufen, der zu diesem Zweck entworfen wurde.

Hinweise zur Implementierung

Wenn Sie eine abgeleitete Klasse Stream implementieren, müssen Sie Implementierungen für die Read und Write-Methoden bereitstellen. Die asynchronen Methoden ReadAsync, WriteAsync und CopyToAsync verwendet die synchronen Methoden Read und Write in ihren Implementierungen. Daher eignen sich die Implementierungen von Read und von Write ordnungsgemäß mit den asynchronen Methoden. In den Standardimplementierungen von ReadByte und WriteByte wird ein neues, aus einem Element bestehendes Bytearray erstellt und anschließend die Implementierung der Read-Methode und der Write-Methode aufgerufen. Wenn Sie von Stream abgeleitet werden, wird empfohlen, diese Methoden überschreiben, um auf den internen Puffer, wenn Sie ein verfügen, für erheblich auf die Leistung verbessert. Stellen Sie Implementierungen von CanRead, CanSeek, CanWrite, Flush, Length, Position, Seek und SetLength bereit.

Überschreiben Sie die - Methode nicht Close, legen Sie stattdessen die ganze Stream Bereinigungslogik in die Dispose-Methode ein. Weitere Informationen finden Sie unter Implementieren einer Dispose-Methode.

TopicLocation
Gewusst wie: Schreiben von Text in eine Datei.NET Framework: Grundlagen der Programmierung
Gewusst wie: Lesen aus einer Textdatei.NET Framework: Grundlagen der Programmierung
Gewusst wie: Schreiben von Text in eine Datei.NET Framework: Grundlagen der Programmierung
Gewusst wie: Lesen aus einer Textdatei.NET Framework: Grundlagen der Programmierung

Das folgende Beispiel zeigt, wie zwei FileStream-Objekte verwendet, um die Dateien aus einem Verzeichnis in ein anderes Verzeichnis asynchron zu kopieren. Die FileStream-Klasse wird aus der Stream-Klasse abgeleitet. Beachten Sie, dass der Click-Ereignishandler für das - Steuerelement Buttonasync mit dem - Modifizierer gekennzeichnet ist, da er eine asynchrone Methode aufruft


using System;
using System.Threading.Tasks;
using System.Windows;
using System.IO;

namespace WpfApplication
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            string StartDirectory = @"c:\Users\exampleuser\start";
            string EndDirectory = @"c:\Users\exampleuser\end";

            foreach (string filename in Directory.EnumerateFiles(StartDirectory))
            {
                using (FileStream SourceStream = File.Open(filename, FileMode.Open))
                {
                    using (FileStream DestinationStream = File.Create(EndDirectory + filename.Substring(filename.LastIndexOf('\\'))))
                    {
                        await SourceStream.CopyToAsync(DestinationStream);
                    }
                }
            }
        }
    }
}


.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)

Community-Beiträge

HINZUFÜGEN
© 2013 Microsoft. Alle Rechte vorbehalten.