Freigeben über


FileStream.Flush Methode

Definition

Löscht die Puffer für diesen Datenstrom und veranlasst die Ausgabe aller gepufferten Daten in die Datei.

Überlädt

Flush()

Löscht die Puffer für diesen Datenstrom und veranlasst die Ausgabe aller gepufferten Daten in die Datei.

Flush(Boolean)

Löscht die Puffer für diesen Datenstrom, veranlasst die Ausgabe aller gepufferten Daten in die Datei und löscht zudem alle Zwischendateipuffer.

Flush()

Quelle:
FileStream.cs
Quelle:
FileStream.cs
Quelle:
FileStream.cs

Löscht die Puffer für diesen Datenstrom und veranlasst die Ausgabe aller gepufferten Daten in die Datei.

public:
 override void Flush();
public override void Flush ();
override this.Flush : unit -> unit
Public Overrides Sub Flush ()

Ausnahmen

E/A-Fehler

Der Stream ist geschlossen.

Beispiele

Dieses Codebeispiel ist Teil eines größeren Beispiels für die Lock -Methode.

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

Hinweise

Diese Methode überschreibt Stream.Flush.

Wenn Sie die FileStream.Flush -Methode aufrufen, wird auch der E/A-Puffer des Betriebssystems geleert.

Der Encoder eines Datenstroms wird nicht geleert, es sei denn, Sie rufen das Objekt explizit auf Flush oder verwerfen es. Die Einstellung StreamWriter.AutoFlush auf true bedeutet, dass Daten aus dem Puffer in den Stream geleert werden, der Encoderzustand jedoch nicht geleert wird. Dadurch kann der Encoder seinen Zustand (Teilzeichen) beibehalten, damit er den nächsten Zeichenblock ordnungsgemäß codieren kann. Dieses Szenario wirkt sich auf UTF8 und UTF7 aus, bei denen bestimmte Zeichen erst codiert werden können, nachdem der Encoder die angrenzenden Zeichen empfangen hat.

Da ein Puffer zum Lesen oder Schreiben verwendet werden kann, Flush() führt die folgenden beiden Funktionen aus:

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

  • Wenn BufferedStream.CanSeek is true und Daten zuvor aus der Datei zum Lesen in den Puffer kopiert wurden, wird die aktuelle Position in der Datei um die Anzahl der ungelesenen Bytes im Puffer verringert. Der Puffer wird dann gelöscht.

Verwenden Sie die Flush(Boolean) Methodenüberladung, wenn Sie sicherstellen möchten, dass alle gepufferten Daten in Zwischendateipuffern auf den Datenträger geschrieben werden.

Weitere Informationen

Gilt für:

Flush(Boolean)

Quelle:
FileStream.cs
Quelle:
FileStream.cs
Quelle:
FileStream.cs

Löscht die Puffer für diesen Datenstrom, veranlasst die Ausgabe aller gepufferten Daten in die Datei und löscht zudem alle Zwischendateipuffer.

public:
 virtual void Flush(bool flushToDisk);
public virtual void Flush (bool flushToDisk);
override this.Flush : bool -> unit
Public Overridable Sub Flush (flushToDisk As Boolean)

Parameter

flushToDisk
Boolean

true, um alle Zwischendateipuffer zu leeren, andernfalls false.

Hinweise

Verwenden Sie diese Überladung, wenn Sie sicherstellen möchten, dass alle gepufferten Daten in Zwischendateipuffern auf den Datenträger geschrieben werden.

Wenn Sie die Flush -Methode aufrufen, wird auch der E/A-Puffer des Betriebssystems geleert.

Weitere Informationen

Gilt für: