FileStream.Flush FileStream.Flush FileStream.Flush FileStream.Flush Method

Definição

Limpa os buffers desse fluxo e faz com que todos os dados armazenados em buffer sejam gravados no arquivo.Clears buffers for this stream and causes any buffered data to be written to the file.

Sobrecargas

Flush() Flush() Flush() Flush()

Limpa os buffers desse fluxo e faz com que todos os dados armazenados em buffer sejam gravados no arquivo.Clears buffers for this stream and causes any buffered data to be written to the file.

Flush(Boolean) Flush(Boolean) Flush(Boolean) 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.Clears buffers for this stream and causes any buffered data to be written to the file, and also clears all intermediate file buffers.

Flush() Flush() Flush() Flush()

Limpa os buffers desse fluxo e faz com que todos os dados armazenados em buffer sejam gravados no arquivo.Clears buffers for this stream and causes any buffered data to be written to the file.

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.An I/O error occurred.

Exemplos

Este exemplo de código é parte de um exemplo maior fornecido para o Lock método.This code example is part of a larger example provided for the Lock method.

// 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.");
    }
' 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.This method overrides Stream.Flush.

Quando você chama o FileStream.Flush método, o buffer de e/s de sistema de operacional também é liberado.When you call the FileStream.Flush method, the operating system I/O buffer is also flushed.

Codificador do fluxo não é liberado, a menos que você chamar explicitamente Flush ou descartar o objeto.A stream's encoder is not flushed unless you explicitly call Flush or dispose of the object. Definindo StreamWriter.AutoFlush para true significa que dados serão liberados do buffer no fluxo, mas o estado de codificador não será liberado.Setting StreamWriter.AutoFlush to true means that data will be flushed from the buffer to the stream, but the encoder state will not be flushed. Isso permite que o codificador deve manter o estado (caracteres parcial), para que ele pode codificar o próximo bloco de caracteres corretamente.This allows the encoder to keep its state (partial characters) so that it can encode the next block of characters correctly. Esse cenário afeta UTF8 e UTF7 em que determinados caracteres podem ser codificados apenas depois que o codificador recebe adjacentes ou mais caracteres.This scenario affects UTF8 and UTF7 where certain characters can only be encoded after the encoder receives the adjacent character or characters.

Como um buffer pode ser usado para leitura ou gravação, Flush() executa duas funções a seguir:Because a buffer can be used for either reading or writing, Flush() performs the following two functions:

  • Os dados previamente gravados em buffer são copiados para o arquivo e o buffer é limpo, exceto para seu estado de codificador.Any data previously written to the buffer is copied to the file and the buffer is cleared except for its encoder state.

  • Se BufferedStream.CanSeek é true e dados foi copiados anteriormente do arquivo para o buffer para leitura, a posição atual dentro do arquivo é subtraída pelo número de bytes não lidos no buffer.If BufferedStream.CanSeek is true and data was previously copied from the file to the buffer for reading, the current position within the file is decremented by the number of unread bytes in the buffer. O buffer, em seguida, será limpo.The buffer is then cleared.

Use o Flush(Boolean) sobrecarga do método quando desejar garantir que todos os dados em buffer nos buffers de arquivo intermediário é gravada no disco.Use the Flush(Boolean) method overload when you want to ensure that all buffered data in intermediate file buffers is written to disk.

Veja também

Flush(Boolean) Flush(Boolean) Flush(Boolean) 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.Clears buffers for this stream and causes any buffered data to be written to the file, and also clears all intermediate file buffers.

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 Boolean Boolean Boolean

true para limpar todos os buffers de arquivo intermediário; caso contrário, false.true to flush all intermediate file buffers; otherwise, false.

Comentários

Use essa sobrecarga quando você deseja garantir que todos os dados em buffer nos buffers de arquivo intermediário é gravada no disco.Use this overload when you want to ensure that all buffered data in intermediate file buffers is written to disk.

Quando você chama o Flush método, o buffer de e/s de sistema de operacional também é liberado.When you call the Flush method, the operating system I/O buffer is also flushed.

Veja também

Aplica-se a