BufferedStream.Write Metoda

Definicja

Przeciążenia

Write(ReadOnlySpan<Byte>)

Zapisuje sekwencję bajtów do bieżącego buforowanego strumienia i rozwija bieżącą pozycję w tym buforowym strumieniu według liczby zapisanych bajtów.

Write(Byte[], Int32, Int32)

Kopiuje bajty do buforowanego strumienia i rozwija bieżącą pozycję w buforowanych strumieniach według liczby zapisanych bajtów.

Write(ReadOnlySpan<Byte>)

Zapisuje sekwencję bajtów do bieżącego buforowanego strumienia i rozwija bieżącą pozycję w tym buforowym strumieniu według liczby zapisanych bajtów.

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>

Region pamięci. Ta metoda kopiuje zawartość tego regionu do bieżącego buforowanego strumienia.

Uwagi

Użyj właściwości , CanWrite aby określić, czy bieżące wystąpienie obsługuje pisanie. WriteAsync Użyj metody , aby zapisać asynchronicznie do bieżącego buforowanego strumienia.

Jeśli operacja zapisu zakończy się pomyślnie, pozycja w buforowanym strumieniu przechodzi przez liczbę zapisanych bajtów. Jeśli wystąpi wyjątek, pozycja w buforowanym strumieniu pozostaje niezmieniona.

Dotyczy

Write(Byte[], Int32, Int32)

Kopiuje bajty do buforowanego strumienia i rozwija bieżącą pozycję w buforowanych strumieniach według liczby zapisanych bajtów.

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

Tablica bajtów, z której mają być kopiowane count bajty do bieżącego buforowanego strumienia.

offset
Int32

Przesunięcie w buforze, w którym rozpocznie się kopiowanie bajtów do bieżącego buforowanego strumienia.

count
Int32

Liczba bajtów do zapisania do bieżącego buforowanego strumienia.

Wyjątki

array Długość minus offset jest mniejsza niż count.

array to null.

offset lub count jest ujemny.

Strumień jest zamknięty lub null.

Strumień nie obsługuje zapisywania.

Metody były wywoływane po zamknięciu strumienia.

Przykłady

Ten przykład kodu jest częścią większego przykładu podanego BufferedStream dla klasy.

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

Zobacz też

Dotyczy