FileStream.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 de um intervalo somente leitura no fluxo de arquivo atual e avança a posição atual nesse fluxo de arquivo até o número de bytes gravados. |
Write(Byte[], Int32, Int32) |
Grava um bloco de bytes no fluxo de arquivo. |
Write(ReadOnlySpan<Byte>)
- Origem:
- FileStream.cs
- Origem:
- FileStream.cs
- Origem:
- FileStream.cs
Grava uma sequência de bytes de um intervalo somente leitura no fluxo de arquivo atual e avança a posição atual nesse fluxo de arquivo 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 de arquivo atual.
Exceções
.NET 8 e versões posteriores: o pipe subjacente está fechado ou desconectado.
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 atual.
Se a operação de gravação for bem-sucedida, a posição dentro do fluxo de arquivos avançará pelo número de bytes gravados. Se ocorrer uma exceção, a posição dentro do fluxo de arquivos permanecerá inalterada.
Aplica-se a
Write(Byte[], Int32, Int32)
- Origem:
- FileStream.cs
- Origem:
- FileStream.cs
- Origem:
- FileStream.cs
Grava um bloco de bytes no fluxo de arquivo.
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[]
O buffer que contém dados a serem gravados no fluxo.
- offset
- Int32
O deslocamento de bytes baseado em zero em array
do qual será iniciada a cópia de bytes no fluxo.
- count
- Int32
O número máximo de bytes a serem gravados.
Exceções
array
é null
.
offset
e count
descrevem um intervalo inválido em array
.
offset
ou count
é negativo.
Ocorreu um erro de E/S.
- ou -
Outro thread pode ter causado uma alteração inesperada na posição do identificador de arquivo do sistema operacional.
-ou-
.NET 8 e versões posteriores: o pipe subjacente está fechado ou desconectado.
O fluxo está fechado.
A instância de fluxo atual não dá suporte à gravação.
Exemplos
Este exemplo de código faz parte de um exemplo maior fornecido para o Lock método .
// Write the original file data.
if ( fileStream->Length == 0 )
{
tempString = String::Concat( lastRecordText, recordNumber.ToString() );
fileStream->Write( uniEncoding->GetBytes( tempString ), 0, uniEncoding->GetByteCount( tempString ) );
}
// Write the original file data.
if(fileStream.Length == 0)
{
tempString =
lastRecordText + recordNumber.ToString();
fileStream.Write(uniEncoding.GetBytes(tempString),
0, uniEncoding.GetByteCount(tempString));
}
// Write the original file data.
if fileStream.Length = 0 then
let tempString = lastRecordText + string recordNumber
fileStream.Write(uniEncoding.GetBytes tempString, 0, uniEncoding.GetByteCount tempString)
' Write the original file data.
If aFileStream.Length = 0 Then
tempString = _
lastRecordText + recordNumber.ToString()
aFileStream.Write(uniEncoding.GetBytes(tempString), _
0, uniEncoding.GetByteCount(tempString))
End If
Comentários
Este método substitui Write.
O offset
parâmetro fornece o deslocamento do byte em array
(o índice de buffer) no qual começar a copiar e o count
parâmetro fornece o número de bytes que serão gravados no fluxo. Se a operação de gravação for bem-sucedida, a posição atual do fluxo será avançada pelo número de bytes gravados. Se ocorrer uma exceção, a posição atual do fluxo permanecerá inalterada.
Observação
Use a CanWrite propriedade para determinar se a instância atual dá suporte à gravação. Para obter mais informações, consulte: CanWrite.
Não interrompa um thread que esteja executando uma operação de gravação. Embora o aplicativo pareça ser executado com êxito depois que o thread é desbloqueado, a interrupção pode diminuir o desempenho e a confiabilidade do aplicativo.
Para obter uma lista de operações comuns de arquivo e diretório, consulte Tarefas comuns de E/S.