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

Source:
FileStream.cs
Source:
FileStream.cs
Source:
FileStream.cs

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 grand 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.");
    }
| 'W' ->
    // Update the file.
    try

        fileStream.Seek(textLength, SeekOrigin.Begin) |> ignore
        fileStream.Read(readText, textLength - 1, byteCount) |> ignore
        tempString <- String(uniEncoding.GetChars readText, textLength - 1, byteCount)
        recordNumber <- Int32.Parse tempString + 1
        fileStream.Seek(textLength, SeekOrigin.Begin) |> ignore
        fileStream.Write(string recordNumber |> uniEncoding.GetBytes, 0, byteCount)
        fileStream.Flush()
        printfn "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.

Lorsque vous appelez la FileStream.Flush méthode , la mémoire tampon d’E/S du système d’exploitation est également vidée.

L’encodeur d’un flux n’est pas vidé, sauf si vous appelez Flush ou supprimez explicitement l’objet. 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é. Cela permet à l’encodeur de conserver son état (caractères partiels) afin qu’il puisse encoder correctement le bloc de caractères suivant. Ce scénario affecte UTF8 et UTF7 où certains caractères ne peuvent être encodés qu’une fois que l’encodeur a reçu le ou les caractères adjacents.

Étant donné qu’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 précédemment écrites 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 est true et que les données ont été précédemment copiées du fichier dans la mémoire tampon pour lecture, la position actuelle dans le fichier est décrémentée par le nombre d’octets non lus dans la mémoire tampon. La mémoire tampon est ensuite 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 les mémoires tampons de fichiers intermédiaires sont écrites sur le disque.

Voir aussi

S’applique à

Flush(Boolean)

Source:
FileStream.cs
Source:
FileStream.cs
Source:
FileStream.cs

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 les mémoires tampons de fichiers intermédiaires sont écrites sur le disque.

Lorsque vous appelez la Flush méthode , la mémoire tampon d’E/S du système d’exploitation est également vidée.

Voir aussi

S’applique à