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 w pliku.
Przeciążenia
Flush() |
Czyści bufory dla tego strumienia i powodują zapisanie wszystkich buforowanych danych w pliku. |
Flush(Boolean) |
Czyści bufory dla tego strumienia i powodują zapisanie wszystkich buforowanych danych do pliku, a także czyszczenie wszystkich buforów plików pośrednich. |
Flush()
- Źródło:
- FileStream.cs
- Źródło:
- FileStream.cs
- Źródło:
- FileStream.cs
Czyści bufory dla tego strumienia i powodują zapisanie wszystkich buforowanych danych w 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 udostępnionego 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.");
}
| '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.")
Uwagi
Ta metoda zastępuje metodę Stream.Flush.
Podczas wywoływania 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), dzięki czemu będzie mógł poprawnie zakodować następny blok znaków. Ten scenariusz ma wpływ na UTF8 i UTF7, gdzie niektóre znaki mogą być kodowane tylko po otrzymaniu sąsiadującego znaku lub znaków przez koder.
Ponieważ bufor może służyć do odczytu lub zapisu, 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 element jest
true
i dane zostały wcześniej skopiowane z pliku do buforu do odczytu, bieżące położenie w pliku jest dekrementowane przez liczbę nieprzeczytanych bajtów w buforze. Bufor jest następnie czyszczone.
Flush(Boolean) Użyj przeciążenia metody, jeśli chcesz upewnić się, że wszystkie buforowane dane w buforach plików pośrednich są zapisywane na dysku.
Zobacz też
Dotyczy
Flush(Boolean)
- Źródło:
- FileStream.cs
- Źródło:
- FileStream.cs
- Źródło:
- FileStream.cs
Czyści bufory dla tego strumienia i powodują zapisanie wszystkich buforowanych danych do pliku, a także czyszczenie wszystkich buforów 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, aby upewnić się, że wszystkie buforowane dane w buforach plików pośrednich są zapisywane na dysku.
Podczas wywoływania Flush metody bufor we/wy systemu operacyjnego jest również opróżniany.