FileStream.Flush Metoda

Definicja

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.

Zobacz też

Dotyczy