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.

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.

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.

Flush()

Efface les mémoires tampons pour ce flux et provoque l'écriture dans le fichier des données mises en mémoire tampon.

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.

Le flux est fermé.

Exemples

Cet exemple de code fait partie d’un exemple plus complet fourni pour la Lock méthode.

// 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.

Quand vous appelez la FileStream.Flush méthode, le tampon d’e/s du système d’exploitation est également vidé.

L’encodeur d’un flux n’est pas vidé, sauf si vous appelez Flush ou supprimez explicitement l’objet. La définition de la valeur StreamWriter.AutoFlush 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é. Cela permet à l’encodeur de conserver son état (caractères partiels) afin qu’il puisse coder correctement le bloc de caractères suivant. 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.

Comme une mémoire tampon peut être utilisée pour la lecture ou l’écriture, Flush() exécute les deux fonctions suivantes :

  • 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.

  • Si BufferedStream.CanSeek a la valeur et que des true 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. La mémoire tampon est alors effacée.

Utilisez la Flush(Boolean) surcharge de méthode 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.

Voir aussi

S’applique à

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.

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.

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.

Quand vous appelez la Flush méthode, le tampon d’e/s du système d’exploitation est également vidé.

Voir aussi

S’applique à