FileStream.Flush Méthode

Définition

Efface les mémoires tampons pour ce flux et provoque l'écriture dans le fichier des données mises en mémoire tampon.Clears buffers for this stream and causes any buffered data to be written to the file.

Surcharges

Flush()

Efface les mémoires tampons pour ce flux et provoque l'écriture dans le fichier des données mises en mémoire tampon.Clears buffers for this stream and causes any buffered data to be written to the file.

Flush(Boolean)

Efface les mémoires tampons pour ce flux, provoque l'écriture des données mises en mémoire tampon dans le fichier et efface également toutes les mémoires tampons de fichiers intermédiaires.Clears buffers for this stream and causes any buffered data to be written to the file, and also clears all intermediate file buffers.

Flush()

Efface les mémoires tampons pour ce flux et provoque l'écriture dans le fichier des données mises en mémoire tampon.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 ()

Exceptions

Une erreur d'E/S s'est produite.An I/O error occurred.

Le flux est fermé.The stream is closed.

Exemples

Cet exemple de code fait partie d’un exemple plus complet fourni pour la méthode Lock.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.")

Remarques

Cette méthode se substitue à Stream.Flush.This method overrides Stream.Flush.

Quand vous appelez la méthode FileStream.Flush, le tampon d’e/s du système d’exploitation est également vidé.When you call the FileStream.Flush method, the operating system I/O buffer is also flushed.

L’encodeur d’un flux n’est pas vidé, sauf si vous appelez explicitement Flush ou supprimer l’objet.A stream's encoder is not flushed unless you explicitly call Flush or dispose of the object. La définition de StreamWriter.AutoFlush sur true signifie que les données seront vidées de la mémoire tampon vers le flux, mais que l’état de l’encodeur ne sera pas vidé.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. Cela permet à l’encodeur de conserver son état (caractères partiels) afin qu’il puisse coder correctement le bloc de caractères suivant.This allows the encoder to keep its state (partial characters) so that it can encode the next block of characters correctly. Ce scénario affecte UTF8 et UTF7, où certains caractères ne peuvent être codés que lorsque l’encodeur reçoit le ou les caractères adjacents.This scenario affects UTF8 and UTF7 where certain characters can only be encoded after the encoder receives the adjacent character or characters.

Comme une mémoire tampon peut être utilisée pour la lecture ou l’écriture, Flush() effectue les deux fonctions suivantes :Because a buffer can be used for either reading or writing, Flush() performs the following two functions:

  • Toutes les données écrites précédemment dans la mémoire tampon sont copiées dans le fichier et la mémoire tampon est effacée, à l’exception de son état d’encodeur.Any data previously written to the buffer is copied to the file and the buffer is cleared except for its encoder state.

  • Si BufferedStream.CanSeek est true et que des données ont été précédemment copiées à partir du fichier dans la mémoire tampon pour la lecture, la position actuelle dans le fichier est décrémentée du nombre d’octets non lus dans la mémoire tampon.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. La mémoire tampon est alors effacée.The buffer is then cleared.

Utilisez la surcharge de méthode Flush(Boolean) lorsque vous souhaitez vous assurer que toutes les données mises en mémoire tampon dans des mémoires tampons de fichiers intermédiaires sont écrites sur le disque.Use the Flush(Boolean) method overload when you want to ensure that all buffered data in intermediate file buffers is written to disk.

Voir aussi

Flush(Boolean)

Efface les mémoires tampons pour ce flux, provoque l'écriture des données mises en mémoire tampon dans le fichier et efface également toutes les mémoires tampons de fichiers intermédiaires.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)

Paramètres

flushToDisk
Boolean

true pour vider toutes les mémoires tampons de fichiers intermédiaires ; sinon, false.true to flush all intermediate file buffers; otherwise, false.

Remarques

Utilisez cette surcharge lorsque vous souhaitez vous assurer que toutes les données mises en mémoire tampon dans des mémoires tampons de fichiers intermédiaires sont écrites sur le disque.Use this overload when you want to ensure that all buffered data in intermediate file buffers is written to disk.

Quand vous appelez la méthode Flush, le tampon d’e/s du système d’exploitation est également vidé.When you call the Flush method, the operating system I/O buffer is also flushed.

Voir aussi

S’applique à