BufferedStream.Write Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 array
offset
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é
- CanWrite
- Read(Byte[], Int32, Int32)
- Vstupně-výstupní operace souborů a Stream
- Postupy: Čtení textu ze souboru
- Postupy: Zápis textu do souboru