FileStream.Flush Metod

Definition

Rensar buffertar för den här strömmen och gör att buffrade data skrivs till filen.

Överlagringar

Name Description
Flush()

Rensar buffertar för den här strömmen och gör att buffrade data skrivs till filen.

Flush(Boolean)

Rensar buffertar för den här strömmen och gör att buffrade data skrivs till filen och rensar även alla mellanliggande filbuffertar.

Flush()

Rensar buffertar för den här strömmen och gör att buffrade data skrivs till filen.

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 ()

Undantag

Ett I/O-fel uppstod.

Strömmen är stängd.

Exempel

Det här kodexemplet är en del av ett större exempel för Lock metoden.

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

Kommentarer

Den här metoden åsidosätter Stream.Flush.

När du anropar FileStream.Flush metoden rensas även I/O-bufferten för operativsystemet.

En dataströms kodare rensas inte om du inte uttryckligen anropar Flush eller tar bort objektet. true Inställningen StreamWriter.AutoFlush innebär att data rensas från bufferten till strömmen, men kodartillståndet rensas inte. Detta gör att kodaren kan behålla sitt tillstånd (partiella tecken) så att nästa teckenblock kan kodas korrekt. Det här scenariot påverkar UTF8 och UTF7 där vissa tecken bara kan kodas efter att kodaren har fått det intilliggande tecknet eller tecknen.

Eftersom en buffert kan användas för att antingen läsa eller skriva utför Flush() följande två funktioner:

  • Alla data som tidigare skrivits till bufferten kopieras till filen och bufferten rensas förutom dess kodartillstånd.

  • Om BufferedStream.CanSeek is true och data tidigare kopierades från filen till bufferten för läsning, minskas den aktuella positionen i filen av antalet olästa byte i bufferten. Bufferten rensas sedan.

Använd metodöverlagringen Flush(Boolean) när du vill se till att alla buffrade data i mellanliggande filbuffertar skrivs till disk.

Se även

Gäller för

Flush(Boolean)

Rensar buffertar för den här strömmen och gör att buffrade data skrivs till filen och rensar även alla mellanliggande filbuffertar.

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)

Parametrar

flushToDisk
Boolean

trueför att rensa alla mellanliggande filbuffertar; annars . false

Kommentarer

Använd den här överbelastningen när du vill se till att alla buffrade data i mellanliggande filbuffertar skrivs till disk.

När du anropar Flush metoden rensas även I/O-bufferten för operativsystemet.

Se även

Gäller för