BufferedStream.Write Metoda

Definice

Přetížení

Write(ReadOnlySpan<Byte>)

Zapíše posloupnost bajtů do aktuálního vyrovnávacího datového proudu a přejde na aktuální pozici v rámci tohoto vyrovnávacího datového proudu počtem bajtů zapsaných.

Write(Byte[], Int32, Int32)

Zkopíruje bajty do vyrovnávací paměti streamu a posune aktuální pozici v rámci vyrovnávací paměti datového proudu o počet bajtů zapsaných.

Write(ReadOnlySpan<Byte>)

Zapíše posloupnost bajtů do aktuálního vyrovnávacího datového proudu a přejde na aktuální pozici v rámci tohoto vyrovnávacího datového proudu počtem bajtů zapsaných.

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

Parametry

buffer
ReadOnlySpan<Byte>

Oblast paměti. Tato metoda zkopíruje obsah této oblasti do aktuálního streamu ve vyrovnávací paměti.

Poznámky

CanWrite Pomocí vlastnosti určete, zda aktuální instance podporuje zápis. Použijte metodu WriteAsync k asynchronnímu zápisu do aktuálního streamu s vyrovnávací pamětí.

Pokud je operace zápisu úspěšná, pozice v rámci vyrovnávacího datového proudu se posune o počet zapsaných bajtů. Pokud dojde k výjimce, zůstane pozice v rámci vyrovnávacího proudu nezměněná.

Platí pro

Write(Byte[], Int32, Int32)

Zkopíruje bajty do vyrovnávací paměti streamu a posune aktuální pozici v rámci vyrovnávací paměti datového proudu o počet bajtů zapsaných.

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)

Parametry

arraybuffer
Byte[]

Bajtové pole, ze kterého chcete kopírovat count bajty do aktuálního vyrovnávacího datového proudu.

offset
Int32

Posun v vyrovnávací paměti, na které se má začít kopírovat bajty do aktuálního vyrovnávacího proudu.

count
Int32

Počet bajtů, které se mají zapsat do aktuálního streamu vyrovnávací paměti.

Výjimky

array Délka minus offset je menší než count.

array je null.

offset nebo count je negativní.

Stream je uzavřen nebo null.

Stream nepodporuje psaní.

Metody byly volány po zavření datového proudu.

Příklady

Tento příklad kódu je součástí většího příkladu zadaného BufferedStream pro třídu.

// 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"))

Viz také

Platí pro