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 em buffer sejam gravados no arquivo.
Sobrecargas
| Nome | Description |
|---|---|
| Flush() |
Limpa os buffers desse fluxo e faz com que todos os dados em buffer sejam gravados no arquivo. |
| Flush(Boolean) |
Limpa os buffers desse fluxo e faz com que todos os dados em buffer sejam gravados no arquivo e também limpa todos os buffers de arquivos intermediários. |
Flush()
Limpa os buffers desse fluxo e faz com que todos os dados em buffer sejam gravados no arquivo.
public:
override void Flush();
public override void Flush();
override this.Flush : unit -> unit
abstract member Flush : unit -> unit
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 = 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. A configuração StreamWriter.AutoFlush significa true 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
truee 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)
Limpa os buffers desse fluxo e faz com que todos os dados em buffer sejam gravados no arquivo e também limpa todos os buffers de arquivos intermediários.
public:
virtual void Flush(bool flushToDisk);
public virtual void Flush(bool flushToDisk);
override this.Flush : bool -> unit
abstract member Flush : bool -> unit
override this.Flush : bool -> unit
Public Overridable Sub Flush (flushToDisk As Boolean)
Parâmetros
- flushToDisk
- Boolean
true para liberar todos os buffers de arquivos intermediários; 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.