FileStream.Flush 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.
Limpa os buffers desse fluxo e faz com que todos os dados armazenados em buffer sejam gravados no arquivo.
Sobrecargas
Flush() |
Limpa os buffers desse fluxo e faz com que todos os dados armazenados em buffer sejam gravados no arquivo. |
Flush(Boolean) |
Limpa os buffers desse fluxo e faz com que os dados armazenados em buffer sejam gravados no arquivo e também limpa todos os buffers de arquivo intermediário. |
Flush()
- Origem:
- FileStream.cs
- Origem:
- FileStream.cs
- Origem:
- FileStream.cs
Limpa os buffers desse fluxo e faz com que todos os dados armazenados em buffer sejam gravados no arquivo.
public:
override void Flush();
public override void Flush ();
override this.Flush : unit -> unit
Public Overrides Sub Flush ()
Exceções
Ocorreu um erro de E/S.
O fluxo está fechado.
Exemplos
Este exemplo de código faz parte de um exemplo maior fornecido para o Lock método .
// Update the file.
case 'W':
try
{
fileStream->Seek( textLength, SeekOrigin::Begin );
fileStream->Read( readText, textLength - 1, byteCount );
tempString = gcnew String( uniEncoding->GetChars( readText, textLength - 1, byteCount ) );
recordNumber = Int32::Parse( tempString ) + 1;
fileStream->Seek( textLength, SeekOrigin::Begin );
fileStream->Write( uniEncoding->GetBytes( recordNumber.ToString() ), 0, byteCount );
fileStream->Flush();
Console::WriteLine( "Record has been updated." );
}
// Update the file.
case 'W':
try
{
fileStream.Seek(textLength,
SeekOrigin.Begin);
fileStream.Read(
readText, textLength - 1, byteCount);
tempString = new String(
uniEncoding.GetChars(
readText, textLength - 1, byteCount));
recordNumber = int.Parse(tempString) + 1;
fileStream.Seek(
textLength, SeekOrigin.Begin);
fileStream.Write(uniEncoding.GetBytes(
recordNumber.ToString()),
0, byteCount);
fileStream.Flush();
Console.WriteLine(
"Record has been updated.");
}
| 'W' ->
// Update the file.
try
fileStream.Seek(textLength, SeekOrigin.Begin) |> ignore
fileStream.Read(readText, textLength - 1, byteCount) |> ignore
tempString <- String(uniEncoding.GetChars readText, textLength - 1, byteCount)
recordNumber <- Int32.Parse tempString + 1
fileStream.Seek(textLength, SeekOrigin.Begin) |> ignore
fileStream.Write(string recordNumber |> uniEncoding.GetBytes, 0, byteCount)
fileStream.Flush()
printfn "Record has been updated."
' Update the file.
Case "W"C
Try
aFileStream.Seek(textLength, _
SeekOrigin.Begin)
aFileStream.Read( _
readText, textLength - 1, byteCount)
tempString = New String( _
uniEncoding.GetChars( _
readText, textLength - 1, byteCount))
recordNumber = _
Integer.Parse(tempString) + 1
aFileStream.Seek( _
textLength, SeekOrigin.Begin)
aFileStream.Write(uniEncoding.GetBytes( _
recordNumber.ToString()), 0, byteCount)
aFileStream.Flush()
Console.WriteLine( _
"Record has been updated.")
Comentários
Este método substitui Stream.Flush.
Quando você chama o FileStream.Flush método , o buffer de E/S do sistema operacional também é liberado.
O codificador de um fluxo não é liberado, a menos que você chame Flush ou descarte explicitamente o objeto. Definir StreamWriter.AutoFlush como true
significa que os dados serão liberados do buffer para o fluxo, mas o estado do codificador não será liberado. Isso permite que o codificador mantenha seu estado (caracteres parciais) para que ele possa codificar o próximo bloco de caracteres corretamente. Esse cenário afeta UTF8 e UTF7, em que determinados caracteres só podem ser codificados depois que o codificador recebe o caractere ou caracteres adjacentes.
Como um buffer pode ser usado para leitura ou gravação, Flush() executa as duas funções a seguir:
Todos os dados gravados anteriormente no buffer são copiados para o arquivo e o buffer é limpo, exceto pelo estado do codificador.
Se BufferedStream.CanSeek for
true
e os dados tiverem sido copiados anteriormente do arquivo para o buffer para leitura, a posição atual dentro do arquivo será decrementada pelo número de bytes não lidos no buffer. Em seguida, o buffer é limpo.
Use a sobrecarga do Flush(Boolean) método quando quiser garantir que todos os dados armazenados em buffer em buffers de arquivos intermediários sejam gravados em disco.
Confira também
Aplica-se a
Flush(Boolean)
- Origem:
- FileStream.cs
- Origem:
- FileStream.cs
- Origem:
- FileStream.cs
Limpa os buffers desse fluxo e faz com que os dados armazenados em buffer sejam gravados no arquivo e também limpa todos os buffers de arquivo intermediário.
public:
virtual void Flush(bool flushToDisk);
public virtual void Flush (bool flushToDisk);
override this.Flush : bool -> unit
Public Overridable Sub Flush (flushToDisk As Boolean)
Parâmetros
- flushToDisk
- Boolean
true
para limpar todos os buffers de arquivo intermediário; caso contrário, false
.
Comentários
Use essa sobrecarga quando quiser garantir que todos os dados armazenados em buffer em buffers de arquivos intermediários sejam gravados em disco.
Quando você chama o Flush método , o buffer de E/S do sistema operacional também é liberado.