Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
Stream-Klasse
Stellt eine allgemeine Ansicht einer Folge von Bytes bereit.
Assembly: mscorlib (in mscorlib.dll)
Der Stream-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
CanRead | Ruft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob der aktuelle Stream Lesevorgänge unterstützt. |
|
CanSeek | Ruft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob der aktuelle Stream Suchvorgänge unterstützt. |
|
CanTimeout | Ruft einen Wert ab, der bestimmt, ob für den aktuellen Stream ein Timeout möglich ist. |
|
CanWrite | Ruft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob der aktuelle Stream Schreibvorgänge unterstützt. |
|
Length | Ruft beim Überschreiben in einer abgeleiteten Klasse die Länge des Streams in Bytes ab. |
|
Position | Ruft beim Überschreiben in einer abgeleiteten Klasse die Position im aktuellen Stream ab oder legt diese fest. |
|
ReadTimeout | 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. |
|
WriteTimeout | 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. |
| Name | Beschreibung | |
|---|---|---|
|
BeginRead | Beginnt einen asynchronen Lesevorgang. |
|
BeginWrite | Beginnt einen asynchronen Schreibvorgang. |
|
Close | Schließt den aktuellen Stream und gibt alle dem aktuellen Stream zugeordneten Ressourcen frei (z. B. Sockets und Dateihandles). |
|
CopyTo(Stream) | Liest alle Bytes aus dem aktuellen Datenstrom und schreibt sie in den Zieldatenstrom. |
|
CopyTo(Stream, Int32) | Liest alles Bytes aus dem aktuellen Datenstrom und schreibt sie unter Verwendung einer angegebenen Puffergröße in einen Zieldatenstrom. |
|
CreateObjRef | Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind. (Von MarshalByRefObject geerbt.) |
|
CreateWaitHandle | Veraltet. Reserviert ein WaitHandle-Objekt. |
|
Dispose() | Gibt sämtliche vom Stream verwendeten Ressourcen frei. |
|
Dispose(Boolean) | Gibt die vom Stream verwendeten nicht verwalteten Ressourcen und optional auch die verwalteten Ressourcen frei. |
|
EndRead | Wartet, bis der ausstehende asynchrone Lesevorgang abgeschlossen ist. |
|
EndWrite | Beendet einen asynchronen Schreibvorgang. |
|
Equals(Object) | Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.) |
|
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.) |
|
Flush | Lö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. |
|
GetHashCode | Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.) |
|
GetLifetimeService | Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert. (Von MarshalByRefObject geerbt.) |
|
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
|
InitializeLifetimeService | Ruft ein Lebensdauerdienstobjekt ab, mit dem die Lebensdauerrichtlinien für diese Instanz gesteuert werden können. (Von MarshalByRefObject geerbt.) |
|
MemberwiseClone() | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
MemberwiseClone(Boolean) | Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts. (Von MarshalByRefObject geerbt.) |
|
ObjectInvariant | Infrastruktur. Bietet Unterstützung für das Contract. |
|
Read | Liest 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. |
|
ReadByte | Liest 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. |
|
Seek | Legt beim Überschreiben in einer abgeleiteten Klasse die Position im aktuellen Stream fest. |
|
SetLength | Legt beim Überschreiben in einer abgeleiteten Klasse die Länge des aktuellen Streams fest. |
|
Synchronized | Erstellt um das angegebene Stream-Objekt einen threadsicheren (synchronisierten) Wrapper. |
|
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
|
Write | Schreibt 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. |
|
WriteByte | Schreibt ein Byte an die aktuellen Position im Stream und erhöht die aktuelle Position im Stream um ein Byte. |
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. Bei einem Suchvorgang wird die aktuelle Position in einem Stream abgefragt und bearbeitet. 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 davon abgeleiteten Klassen stellen eine allgemeine Ansicht dieser unterschiedlichen Eingabe- und Ausgabetypen bereit, sodass Programmierer sich nicht mit den Einzelheiten des Betriebssystems und der zugrunde liegenden Geräten befassen müssen.
Abhängig von der zugrunde liegenden Datenquelle oder vom Repository unterstützen Streams möglicherweise nur einige dieser Funktionen. Eine Anwendung kann die Funktionen eines Streams mithilfe der CanRead-Eigenschaft, der CanWrite-Eigenschaft und der CanSeek-Eigenschaft abfragen.
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.
Einige der Implementierungen von Streams speichern die zugrunde liegenden Daten lokal im Puffer, um die Leistung zu verbessern. Bei diesen Streams können Sie mit der Flush-Methode die internen Puffer löschen und sicherstellen, dass alle Daten in die zugrunde liegende Datenquelle oder das Repository geschrieben werden.
Close auf einem Stream aufzurufen leert alle gepufferten Daten, insbesondere wenn Flush aufgerufen wird. Close 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 benötigen (auch als Bitbucket bezeichnet), verwenden Sie Null.
Hinweise zur Implementierung
Beim Implementieren einer von Stream abgeleiteten Klasse müssen Sie Implementierungen für die Read-Methode und die Write-Methode bereitstellen. Die asynchronen Methoden BeginRead, EndRead, BeginWrite und EndWrite werden durch die synchronen Methoden Read und Write implementiert. Ebenso funktioniert die Implementierung von Read und Write auch 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 ableiten und über einen internen Bytepuffer verfügen, sollten Sie diese Methoden unbedingt überschreiben, sodass auf den internen Puffer bei besserer Leistung zugegriffen wird. Stellen Sie Implementierungen von CanRead, CanSeek, CanWrite, Flush, Length, Position, Seek und SetLength bereit.
Überschreiben Sie nicht die Close-Methode. Legen Sie stattdessen die gesamte Stream-Bereinigungslogik in der Dispose-Methode ab. Weitere Informationen finden Sie unter Implementieren einer Dispose-Methode.
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
System.MarshalByRefObject
System.IO.Stream
Microsoft.JScript.COMCharStream
System.Data.OracleClient.OracleBFile
System.Data.OracleClient.OracleLob
System.Data.SqlTypes.SqlFileStream
System.IO.BufferedStream
System.IO.Compression.DeflateStream
System.IO.Compression.GZipStream
System.IO.FileStream
System.IO.MemoryStream
System.IO.Pipes.PipeStream
System.IO.UnmanagedMemoryStream
System.Net.Security.AuthenticatedStream
System.Net.Sockets.NetworkStream
System.Printing.PrintQueueStream
System.Security.Cryptography.CryptoStream