BufferedStream.Write Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
Write(ReadOnlySpan<Byte>) |
Grava uma sequência de bytes no fluxo em buffer atual e avança a posição atual nesse fluxo em buffer até o número de bytes gravados. |
Write(Byte[], Int32, Int32) |
Copia bytes para o fluxo em buffer e avança a posição atual dentro do fluxo em buffer pelo número de bytes gravados. |
Write(ReadOnlySpan<Byte>)
- Origem:
- BufferedStream.cs
- Origem:
- BufferedStream.cs
- Origem:
- BufferedStream.cs
Grava uma sequência de bytes no fluxo em buffer atual e avança a posição atual nesse fluxo em buffer até o número de bytes gravados.
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))
Parâmetros
- buffer
- ReadOnlySpan<Byte>
Uma região da memória. Esse método copia o conteúdo dessa região para o fluxo em buffer atual.
Comentários
Use a CanWrite propriedade para determinar se a instância atual dá suporte à gravação. Use o WriteAsync método para gravar de forma assíncrona no fluxo armazenado em buffer atual.
Se a operação de gravação for bem-sucedida, a posição dentro do fluxo armazenado em buffer avançará pelo número de bytes gravados. Se ocorrer uma exceção, a posição dentro do fluxo armazenado em buffer permanecerá inalterada.
Aplica-se a
Write(Byte[], Int32, Int32)
- Origem:
- BufferedStream.cs
- Origem:
- BufferedStream.cs
- Origem:
- BufferedStream.cs
Copia bytes para o fluxo em buffer e avança a posição atual dentro do fluxo em buffer pelo número de bytes gravados.
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)
Parâmetros
- arraybuffer
- Byte[]
A matriz de bytes da qual copiar count
bytes para o fluxo em buffer atual.
- offset
- Int32
O deslocamento no buffer no qual começar a copiar bytes para o fluxo em buffer atual.
- count
- Int32
O número de bytes a serem gravados no fluxo em buffer atual.
Exceções
O tamanho de array
menos offset
é menor que count
.
array
é null
.
offset
ou count
é negativo.
O fluxo está fechado ou null
.
Não há suporte para gravação no fluxo.
Foram chamados métodos depois que o fluxo foi fechado.
Exemplos
Este exemplo de código faz parte de um exemplo maior fornecido para a BufferedStream classe .
// 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"))
Confira também
- CanWrite
- Read(Byte[], Int32, Int32)
- E/S de arquivo e de fluxo
- Como ler texto de um arquivo
- Como gravar texto em um arquivo