FileStream.Flush Methode

Definitie

Hiermee worden buffers voor deze stroom gewist en worden eventuele gebufferde gegevens naar het bestand geschreven.

Overloads

Name Description
Flush()

Hiermee worden buffers voor deze stroom gewist en worden eventuele gebufferde gegevens naar het bestand geschreven.

Flush(Boolean)

Hiermee worden buffers voor deze stroom gewist en worden eventuele gebufferde gegevens naar het bestand geschreven en worden ook alle tussenliggende bestandsbuffers gewist.

Flush()

Hiermee worden buffers voor deze stroom gewist en worden eventuele gebufferde gegevens naar het bestand geschreven.

public:
 override void Flush();
public override void Flush();
override this.Flush : unit -> unit
abstract member Flush : unit -> unit
override this.Flush : unit -> unit
Public Overrides Sub Flush ()

Uitzonderingen

Er is een I/O-fout opgetreden.

De stream is gesloten.

Voorbeelden

Dit codevoorbeeld maakt deel uit van een groter voorbeeld dat is opgegeven voor de Lock methode.

// 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.")

Opmerkingen

Deze methode overschrijft Stream.Flush.

Wanneer u de FileStream.Flush methode aanroept, wordt de I/O-buffer van het besturingssysteem ook leeggemaakt.

De encoder van een stream wordt niet leeggemaakt, tenzij u het object expliciet aanroept Flush of verwijdert. Dit betekent StreamWriter.AutoFlushtrue dat gegevens van de buffer naar de stream worden leeggemaakt, maar dat de encoderstatus niet wordt leeggemaakt. Hierdoor kan de encoder de status (gedeeltelijke tekens) behouden, zodat het volgende blok tekens correct kan coderen. Dit scenario is van invloed op UTF8 en UTF7, waarbij bepaalde tekens alleen kunnen worden gecodeerd nadat de encoder het aangrenzende teken of de aangrenzende tekens heeft ontvangen.

Omdat een buffer kan worden gebruikt voor lezen of schrijven, Flush() voert u de volgende twee functies uit:

  • Alle gegevens die eerder naar de buffer zijn geschreven, worden gekopieerd naar het bestand en de buffer wordt gewist, met uitzondering van de encoderstatus.

  • Als BufferedStream.CanSeek dat het zo is true en gegevens eerder uit het bestand naar de buffer zijn gekopieerd om te lezen, wordt de huidige positie in het bestand verminderd door het aantal ongelezen bytes in de buffer. De buffer wordt vervolgens gewist.

Gebruik de overbelasting van de Flush(Boolean) methode als u ervoor wilt zorgen dat alle gebufferde gegevens in tussenliggende bestandsbuffers naar de schijf worden geschreven.

Zie ook

Van toepassing op

Flush(Boolean)

Hiermee worden buffers voor deze stroom gewist en worden eventuele gebufferde gegevens naar het bestand geschreven en worden ook alle tussenliggende bestandsbuffers gewist.

public:
 virtual void Flush(bool flushToDisk);
public virtual void Flush(bool flushToDisk);
override this.Flush : bool -> unit
abstract member Flush : bool -> unit
override this.Flush : bool -> unit
Public Overridable Sub Flush (flushToDisk As Boolean)

Parameters

flushToDisk
Boolean

true alle tussenliggende bestandsbuffers leegmaken; anders, false.

Opmerkingen

Gebruik deze overbelasting als u ervoor wilt zorgen dat alle gebufferde gegevens in tussenliggende bestandsbuffers naar de schijf worden geschreven.

Wanneer u de Flush methode aanroept, wordt de I/O-buffer van het besturingssysteem ook leeggemaakt.

Zie ook

Van toepassing op