FileStream.Flush Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Czyści bufory dla tego strumienia i powodują zapisanie wszystkich buforowanych danych do pliku.
Przeciążenia
Flush() |
Czyści bufory dla tego strumienia i powodują zapisanie wszystkich buforowanych danych do pliku. |
Flush(Boolean) |
Czyści bufory dla tego strumienia i powodują zapisanie wszystkich buforowanych danych do pliku, a także czyści wszystkie bufory plików pośrednich. |
Flush()
Czyści bufory dla tego strumienia i powodują zapisanie wszystkich buforowanych danych do pliku.
public:
override void Flush();
public override void Flush ();
override this.Flush : unit -> unit
Public Overrides Sub Flush ()
Wyjątki
Wystąpił błąd we/wy.
Strumień jest zamknięty.
Przykłady
Ten przykład kodu jest częścią większego przykładu podanego Lock dla metody .
// 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.");
}
' 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.")
Uwagi
Ta metoda zastępuje Stream.Flush.
Po wywołaniu FileStream.Flush metody bufor we/wy systemu operacyjnego jest również opróżniany.
Koder strumienia nie jest opróżniany, chyba że jawnie wywołujesz Flush lub usuwasz obiekt. Ustawienie StreamWriter.AutoFlush oznacza true
, że dane zostaną opróżnione z buforu do strumienia, ale stan kodera nie zostanie opróżniony. Dzięki temu koder może zachować stan (częściowe znaki), aby można było poprawnie zakodować następny blok znaków. Ten scenariusz ma wpływ na utF8 i UTF7, gdzie niektóre znaki mogą być zakodowane tylko po otrzymaniu sąsiadującego znaku lub znaków.
Ponieważ bufor może służyć do odczytywania lub zapisywania, Flush() wykonuje następujące dwie funkcje:
Wszystkie dane zapisane wcześniej w buforze są kopiowane do pliku i bufor jest czyszczone z wyjątkiem stanu kodera.
Jeśli BufferedStream.CanSeek dane zostały
true
wcześniej skopiowane z pliku do buforu do odczytu, bieżąca pozycja w pliku jest dekrementowana przez liczbę nieprzeczytanych bajtów w buforze. Bufor jest następnie czyszczone.
Flush(Boolean) Użyj przeciążenia metody, aby upewnić się, że wszystkie buforowane dane w buforach plików pośrednich są zapisywane na dysku.
Zobacz też
Dotyczy
Flush(Boolean)
Czyści bufory dla tego strumienia i powodują zapisanie wszystkich buforowanych danych do pliku, a także czyści wszystkie bufory plików pośrednich.
public:
virtual void Flush(bool flushToDisk);
public virtual void Flush (bool flushToDisk);
override this.Flush : bool -> unit
Public Overridable Sub Flush (flushToDisk As Boolean)
Parametry
- flushToDisk
- Boolean
true
opróżnić wszystkie bufory plików pośrednich; w przeciwnym razie , false
.
Uwagi
Użyj tego przeciążenia, gdy chcesz upewnić się, że wszystkie buforowane dane w buforach plików pośrednich są zapisywane na dysku.
Po wywołaniu Flush metody bufor we/wy systemu operacyjnego jest również opróżniany.