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