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

Definizione

Cancella i buffer del flusso e fa sì che i dati memorizzati nel buffer vengano scritti nel file.Clears buffers for this stream and causes any buffered data to be written to the file.

Overload

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

Cancella i buffer del flusso e fa sì che i dati memorizzati nel buffer vengano scritti nel file.Clears buffers for this stream and causes any buffered data to be written to the file.

Flush(Boolean) Flush(Boolean) Flush(Boolean) Flush(Boolean)

Cancella i buffer del flusso e fa sì che i dati memorizzati nei buffer vengano scritti nel file, cancellando anche tutti i buffer di file intermedi.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()

Cancella i buffer del flusso e fa sì che i dati memorizzati nel buffer vengano scritti nel file.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 ()

Eccezioni

Si è verificato un errore di I/O.An I/O error occurred.

Esempi

Questo esempio di codice fa parte di un esempio più ampio fornito Lock per il metodo.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.")

Commenti

Questo metodo esegue l'override del metodo Stream.Flush.This method overrides Stream.Flush.

Quando si chiama il FileStream.Flush metodo, viene scaricato anche il buffer di i/O del sistema operativo.When you call the FileStream.Flush method, the operating system I/O buffer is also flushed.

Il codificatore di un flusso non viene scaricato a meno che non si Flush chiami o elimini in modo esplicito l'oggetto.A stream's encoder is not flushed unless you explicitly call Flush or dispose of the object. StreamWriter.AutoFlush Impostando true su significa che i dati verranno scaricati dal buffer nel flusso, ma lo stato del codificatore non verrà scaricato.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. In questo modo, il codificatore può mantenerne lo stato (caratteri parziali) in modo da codificare correttamente il blocco successivo di caratteri.This allows the encoder to keep its state (partial characters) so that it can encode the next block of characters correctly. Questo scenario riguarda UTF8 e UTF7, in cui alcuni caratteri possono essere codificati solo dopo che il codificatore riceve il carattere o i caratteri adiacenti.This scenario affects UTF8 and UTF7 where certain characters can only be encoded after the encoder receives the adjacent character or characters.

Poiché un buffer può essere utilizzato sia per la lettura che per Flush() la scrittura, esegue le due funzioni seguenti:Because a buffer can be used for either reading or writing, Flush() performs the following two functions:

  • Tutti i dati scritti in precedenza nel buffer vengono copiati nel file e il buffer viene cancellato ad eccezione dello stato del codificatore.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 i dati sono stati copiati in precedenza dal file al buffer per la lettura, la posizione corrente all'interno del file viene decrementata per il numero di byte non letti nel 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. Il buffer viene quindi cancellato.The buffer is then cleared.

Utilizzare l' Flush(Boolean) overload del metodo quando si desidera garantire che tutti i dati memorizzati nel buffer nei buffer di file intermedi vengano scritti su disco.Use the Flush(Boolean) method overload when you want to ensure that all buffered data in intermediate file buffers is written to disk.

Vedi anche

Flush(Boolean) Flush(Boolean) Flush(Boolean) Flush(Boolean)

Cancella i buffer del flusso e fa sì che i dati memorizzati nei buffer vengano scritti nel file, cancellando anche tutti i buffer di file intermedi.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)

Parametri

flushToDisk
Boolean Boolean Boolean Boolean

true per svuotare tutti i buffer di file intermedi; in caso contrario, false.true to flush all intermediate file buffers; otherwise, false.

Commenti

Utilizzare questo overload quando si desidera garantire che tutti i dati memorizzati nel buffer nei buffer di file intermedi vengano scritti su disco.Use this overload when you want to ensure that all buffered data in intermediate file buffers is written to disk.

Quando si chiama il Flush metodo, viene scaricato anche il buffer di i/O del sistema operativo.When you call the Flush method, the operating system I/O buffer is also flushed.

Vedi anche

Si applica a