FileStream.Flush Método

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()

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)

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()

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.

O fluxo está fechado.The stream is closed.

Exemplos

Este exemplo de código faz 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 do sistema operacional também é liberado.When you call the FileStream.Flush method, the operating system I/O buffer is also flushed.

O codificador de um fluxo não é liberado, a menos que você chame explicitamente Flush ou descarte o objeto.A stream's encoder is not flushed unless you explicitly call Flush or dispose of the object. 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.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 Mantenha seu estado (caracteres parciais) para que ele possa codificar corretamente o próximo bloco de caracteres.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 só podem ser codificados depois que o codificador recebe o caractere ou caracteres adjacentes.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() o executa as duas funções a seguir:Because a buffer can be used for either reading or writing, Flush() performs the following two functions:

  • Todos os dados gravados anteriormente no 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 for true e os dados tiverem sido copiados anteriormente do arquivo para o buffer para leitura, a posição atual dentro do arquivo será diminuí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 é então apagado.The buffer is then cleared.

Use a Flush(Boolean) sobrecarga do método quando desejar garantir que todos os dados armazenados em buffer em buffers de arquivos intermediários sejam gravados 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.

Confira também

Aplica-se a

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

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 desejar garantir que todos os dados armazenados em buffer em buffers de arquivos intermediários sejam gravados 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 do sistema operacional também é liberado.When you call the Flush method, the operating system I/O buffer is also flushed.

Confira também

Aplica-se a