FileStream.Flush Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Limpa buffers para este fluxo e faz com que quaisquer dados armazenados sejam escritos no ficheiro.
Sobrecargas
| Name | Description |
|---|---|
| Flush() |
Limpa buffers para este fluxo e faz com que quaisquer dados armazenados sejam escritos no ficheiro. |
| Flush(Boolean) |
Limpa buffers para este fluxo e faz com que quaisquer dados armazenados sejam escritos no ficheiro, além de limpar todos os buffers intermédios de ficheiros. |
Flush()
Limpa buffers para este fluxo e faz com que quaisquer dados armazenados sejam escritos no ficheiro.
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 I/O.
O riacho 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.")
Observações
Este método substitui o Stream.Flush.
Quando chamas o FileStream.Flush método, o buffer de I/O do sistema operativo também é limpo.
O codificador de um stream não é esvaziado a menos que chame Flush ou elimine explicitamente o objeto. Definir StreamWriter.AutoFlush para true significa que os dados serão limpos do buffer para o fluxo, mas o estado do codificador não será esvaziado. Isto permite ao codificador manter o seu estado (caracteres parciais) para que possa codificar corretamente o próximo bloco de caracteres. Este cenário afeta UTF8 e UTF7, onde certos caracteres só podem ser codificados depois de o codificador receber o(s) carácter adjacente(s).
Como um buffer pode ser usado tanto para leitura como para escrita, Flush() desempenha as seguintes duas funções:
Quaisquer dados previamente escritos no buffer são copiados para o ficheiro e o buffer é limpo, exceto pelo seu estado de codificador.
Se BufferedStream.CanSeek is
truee os dados foram previamente copiados do ficheiro para o buffer para leitura, a posição atual dentro do ficheiro é decrementada pelo número de bytes não lidos no buffer. O tampão é então limpo.
Use a Flush(Boolean) sobrecarga de métodos quando quiser garantir que todos os dados armazenados em buffers intermédios de ficheiros são gravados no disco.
Ver também
Aplica-se a
Flush(Boolean)
Limpa buffers para este fluxo e faz com que quaisquer dados armazenados sejam escritos no ficheiro, além de limpar todos os buffers intermédios de ficheiros.
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 limpar todos os buffers intermédios de ficheiro; caso contrário, false.
Observações
Use esta sobrecarga quando quiser garantir que todos os dados armazenados em buffers intermédios de ficheiros são gravados no disco.
Quando chamas o Flush método, o buffer de I/O do sistema operativo também é limpo.