FileStream.Flush Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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é.