Sdílet prostřednictvím


BufferedStream.Write Metoda

Definice

Přetížení

Write(ReadOnlySpan<Byte>)

Zapíše posloupnost bajtů do aktuálního datového proudu ve vyrovnávací paměti a posune aktuální pozici v rámci tohoto vyrovnávacího datového proudu o počet zapsaných bajtů.

Write(Byte[], Int32, Int32)

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

Write(ReadOnlySpan<Byte>)

Zdroj:
BufferedStream.cs
Zdroj:
BufferedStream.cs
Zdroj:
BufferedStream.cs

Zapíše posloupnost bajtů do aktuálního datového proudu ve vyrovnávací paměti a posune aktuální pozici v rámci tohoto vyrovnávacího datového proudu o počet zapsaných bajtů.

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 datového proudu ve vyrovnávací paměti.

Poznámky

CanWrite Pomocí vlastnosti určete, jestli aktuální instance podporuje zápis. WriteAsync Pomocí metody můžete asynchronně zapisovat do aktuálního datového proudu ve vyrovnávací paměti.

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

Platí pro

Write(Byte[], Int32, Int32)

Zdroj:
BufferedStream.cs
Zdroj:
BufferedStream.cs
Zdroj:
BufferedStream.cs

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

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[]

Pole bajtů, ze kterého se mají kopírovat count bajty do aktuálního datového proudu ve vyrovnávací paměti.

offset
Int32

Posun ve vyrovnávací paměti, při kterém chcete začít kopírovat bajty do aktuálního datového proudu ve vyrovnávací paměti.

count
Int32

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

Výjimky

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

array je null.

offset nebo count je negativní.

Datový proud je zavřený nebo null.

Datový proud 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 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