FileStream.Flush Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.
trueWenn 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.