Udostępnij za pośrednictwem


FileStream.Flush Metoda

Definicja

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.

Zobacz też

Dotyczy