Freigeben über


FileStream.Flush-Methode

Löscht sämtliche Puffer für diesen Stream und veranlasst die Ausgabe aller gepufferten Daten an das zugrunde liegende Gerät.

Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Overrides Sub Flush
'Usage
Dim instance As FileStream

instance.Flush
public override void Flush ()
public:
virtual void Flush () override
public void Flush ()
public override function Flush ()

Ausnahmen

Ausnahmetyp Bedingung

IOException

Ein E/A-Fehler tritt auf.

ObjectDisposedException

Der Stream ist geschlossen.

Hinweise

Diese Methode überschreibt Flush.

Durch Entleeren des Streams wird der zugrunde liegende Encoder nicht entleert, solange Sie nicht ausdrücklich Flush oder Close aufrufen. Wenn AutoFlush auf true festgelegt ist, werden Daten aus dem Puffer in den Stream entleert, aber der Encoderzustand wird nicht geleert. Dadurch kann der Encoder seinen Zustand beibehalten (Teilzeichen), um den nächsten Block von Zeichen richtig zu codieren. Dieses Szenario betrifft UTF8 und UTF7, bei denen bestimmte Zeichen nur verschlüsselt werden können, nachdem der Encoder die angrenzenden Zeichen empfangen hat.

Da ein Puffer für Lese- und Schreibvorgänge verwendet werden kann, führt Flush die folgenden beiden Funktionen aus:

  1. Alle zuvor in den Puffer geschriebenen Daten werden in die Datei kopiert, und der Puffer wird mit Ausnahme des Encoderzustands gelöscht.

  2. Wenn CanSeek den Wert true aufweist und Daten zuvor zum Lesen aus der Datei in den Puffer kopiert wurden, wird die aktuelle Position in der Datei um die Anzahl der nicht im Puffer gelesenen Bytes verringert. Anschließend wird der Puffer gelöscht.

Beispiel

Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die Lock-Methode.

' 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.")
// 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':
   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 = Int32.Parse(tempString)+1;
        fileStream.Seek(textLength, SeekOrigin.Begin);
        fileStream.Write(uniEncoding.GetBytes(
            (new Integer( recordNumber)).ToString()),
            0, byteCount);
        fileStream.Flush();
        Console.WriteLine("Record has been updated.");
    }

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

FileStream-Klasse
FileStream-Member
System.IO-Namespace

Weitere Ressourcen

Datei- und Stream-E/A
Gewusst wie: Lesen aus einer Textdatei
Gewusst wie: Schreiben von Text in eine Datei