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