FileStream.Flush Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
trueoch 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.