FileStream.Flush Methode

Definition

Löscht Puffer für diesen Datenstrom und bewirkt, dass in die Datei gepufferte Daten geschrieben werden.

Überlädt

Name Beschreibung
Flush()

Löscht Puffer für diesen Datenstrom und bewirkt, dass in die Datei gepufferte Daten geschrieben werden.

Flush(Boolean)

Löscht Puffer für diesen Datenstrom und bewirkt, dass alle gepufferten Daten in die Datei geschrieben werden, und alle Zwischendateipuffer werden gelöscht.

Flush()

Löscht Puffer für diesen Datenstrom und bewirkt, dass in die Datei gepufferte Daten geschrieben werden.

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

Ausnahmen

Ein E/A-Fehler ist aufgetreten.

Der Datenstrom wird geschlossen.

Beispiele

Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die Lock Methode bereitgestellt wird.

// 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 nur geleert, wenn Sie das Objekt explizit aufrufen Flush oder verwerfen. Die Einstellung StreamWriter.AutoFlush bedeutet true , dass Daten aus dem Puffer in den Datenstrom geleert werden, der Encoderstatus wird jedoch nicht geleert. Dadurch kann der Encoder seinen Zustand (Teilzeichen) beibehalten, damit er den nächsten Zeichenblock richtig codieren kann. Dieses Szenario wirkt sich auf UTF8 und UTF7 aus, bei dem bestimmte Zeichen nur codiert werden können, nachdem der Encoder das angrenzende Zeichen oder zeichen empfängt.

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

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

  • true Wenn BufferedStream.CanSeek und daten zuvor aus der Datei zum Lesen in den Puffer kopiert wurden, wird die aktuelle Position innerhalb der Datei um die Anzahl der ungelesenen Bytes im Puffer erhöht. 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)

Löscht Puffer für diesen Datenstrom und bewirkt, dass alle gepufferten Daten in die Datei geschrieben werden, und alle Zwischendateipuffer werden gelöscht.

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

Parameter

flushToDisk
Boolean

trueum 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: