Freigeben über


BufferedStream.Write Methode

Definition

Überlädt

Write(ReadOnlySpan<Byte>)

Schreibt eine Bytesequenz in den aktuellen gepufferten Stream und setzt die aktuelle Position in diesem gepufferten Stream um die Anzahl der geschriebenen Bytes nach vorn.

Write(Byte[], Int32, Int32)

Kopiert Bytes in den gepufferten Stream und verschiebt die aktuelle Position im gepufferten Stream um die Anzahl der geschriebenen Bytes.

Write(ReadOnlySpan<Byte>)

Quelle:
BufferedStream.cs
Quelle:
BufferedStream.cs
Quelle:
BufferedStream.cs

Schreibt eine Bytesequenz in den aktuellen gepufferten Stream und setzt die aktuelle Position in diesem gepufferten Stream um die Anzahl der geschriebenen Bytes nach vorn.

public:
 override void Write(ReadOnlySpan<System::Byte> buffer);
public override void Write (ReadOnlySpan<byte> buffer);
override this.Write : ReadOnlySpan<byte> -> unit
Public Overrides Sub Write (buffer As ReadOnlySpan(Of Byte))

Parameter

buffer
ReadOnlySpan<Byte>

Ein Bereich im Arbeitsspeicher. Diese Methode kopiert den Inhalt dieses Bereichs in den aktuellen gepufferten Stream.

Hinweise

Verwenden Sie die CanWrite -Eigenschaft, um zu bestimmen, ob die aktuelle instance das Schreiben unterstützt. Verwenden Sie die WriteAsync -Methode, um asynchron in den aktuellen gepufferten Stream zu schreiben.

Wenn der Schreibvorgang erfolgreich ist, wird die Position innerhalb des gepufferten Datenstroms um die Anzahl der geschriebenen Bytes erhöht. Wenn eine Ausnahme auftritt, bleibt die Position innerhalb des gepufferten Datenstroms unverändert.

Gilt für:

Write(Byte[], Int32, Int32)

Quelle:
BufferedStream.cs
Quelle:
BufferedStream.cs
Quelle:
BufferedStream.cs

Kopiert Bytes in den gepufferten Stream und verschiebt die aktuelle Position im gepufferten Stream um die Anzahl der geschriebenen Bytes.

public:
 override void Write(cli::array <System::Byte> ^ array, int offset, int count);
public:
 override void Write(cli::array <System::Byte> ^ buffer, int offset, int count);
public override void Write (byte[] array, int offset, int count);
public override void Write (byte[] buffer, int offset, int count);
override this.Write : byte[] * int * int -> unit
override this.Write : byte[] * int * int -> unit
Public Overrides Sub Write (array As Byte(), offset As Integer, count As Integer)
Public Overrides Sub Write (buffer As Byte(), offset As Integer, count As Integer)

Parameter

arraybuffer
Byte[]

Das Bytearray, aus dem count Bytes in den aktuellen gepufferten Stream kopiert werden sollen.

offset
Int32

Der Offset im Puffer, ab dem Bytes in den aktuellen gepufferten Stream kopiert werden sollen.

count
Int32

Die Anzahl der Bytes, die in den aktuellen gepufferten Stream geschrieben werden sollen.

Ausnahmen

Die Länge von array minus offset ist kleiner als count.

array ist null.

offset oder count ist ein negativer Wert.

Der Stream ist geschlossen oder null.

Der Stream unterstützt das Schreiben nicht.

Es wurden Methoden aufgerufen, nachdem der Stream geschlossen wurde.

Beispiele

Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die BufferedStream-Klasse bereitgestellt wird.

// Send the data using the BufferedStream.
Console::WriteLine( "Sending data using BufferedStream." );
startTime = DateTime::Now;
for ( int i = 0; i < numberOfLoops; i++ )
{
   bufStream->Write( dataToSend, 0, dataToSend->Length );

}
bufStream->Flush();
bufferedTime = (DateTime::Now - startTime).TotalSeconds;
Console::WriteLine( "{0} bytes sent in {1} seconds.\n", (numberOfLoops * dataToSend->Length).ToString(), bufferedTime.ToString(  "F1" ) );
// Send the data using the BufferedStream.
Console.WriteLine("Sending data using BufferedStream.");
startTime = DateTime.Now;
for(int i = 0; i < numberOfLoops; i++)
{
    bufStream.Write(dataToSend, 0, dataToSend.Length);
}
bufStream.Flush();
bufferedTime = (DateTime.Now - startTime).TotalSeconds;
Console.WriteLine("{0} bytes sent in {1} seconds.\n",
    numberOfLoops * dataToSend.Length,
    bufferedTime.ToString("F1"));
// Send the data using the BufferedStream.
printfn "Sending data using BufferedStream."
let startTime = DateTime.Now
for _ = 0 to numberOfLoops - 1 do
    bufStream.Write(dataToSend, 0, dataToSend.Length)
bufStream.Flush()
let bufferedTime = (DateTime.Now - startTime).TotalSeconds
printfn $"{numberOfLoops * dataToSend.Length} bytes sent in {bufferedTime:F1} seconds.\n"
' Send the data using the BufferedStream.
Console.WriteLine("Sending data using BufferedStream.")
startTime = DateTime.Now
For i As Integer = 1 To numberOfLoops
    bufStream.Write(dataToSend, 0, dataToSend.Length)
Next i

bufStream.Flush()
bufferedTime = DateTime.Now.Subtract(startTime).TotalSeconds
Console.WriteLine("{0} bytes sent In {1} seconds." & vbCrLf, _
    numberOfLoops * dataToSend.Length, _
    bufferedTime.ToString("F1"))

Weitere Informationen

Gilt für: