FileStream.Flush Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vymaže vyrovnávací paměti pro tento datový proud a způsobí zápis všech dat do vyrovnávací paměti do souboru.
Přetížení
Flush() |
Vymaže vyrovnávací paměti pro tento datový proud a způsobí zápis všech dat do vyrovnávací paměti do souboru. |
Flush(Boolean) |
Vymaže vyrovnávací paměti pro tento datový proud a způsobí zápis všech dat do vyrovnávací paměti do souboru a také vymaže všechny přechodné vyrovnávací paměti souborů. |
Flush()
- Zdroj:
- FileStream.cs
- Zdroj:
- FileStream.cs
- Zdroj:
- FileStream.cs
Vymaže vyrovnávací paměti pro tento datový proud a způsobí zápis všech dat do vyrovnávací paměti do souboru.
public:
override void Flush();
public override void Flush ();
override this.Flush : unit -> unit
Public Overrides Sub Flush ()
Výjimky
Došlo k vstupně-výstupní chybě.
Datový proud se zavře.
Příklady
Tento příklad kódu je součástí většího příkladu pro metodu Lock .
// 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.")
Poznámky
Tato metoda přepíše Stream.Flush.
Při volání FileStream.Flush metody se vyprázdní také vstupně-výstupní vyrovnávací paměť operačního systému.
Kodér datového proudu není vyprázdněný, pokud objekt explicitně nezavoláte Flush nebo nevyřadíte. Nastavení StreamWriter.AutoFlush na znamená true
, že data budou vyprázdněna z vyrovnávací paměti do datového proudu, ale stav kodéru se nevyprázdní. To umožňuje kodéru zachovat svůj stav (částečné znaky), aby mohl správně zakódovat další blok znaků. Tento scénář má vliv na UTF8 a UTF7, kde určité znaky lze zakódovat pouze poté, co kodér přijme sousední znak nebo znaky.
Vzhledem k tomu, že vyrovnávací paměť lze použít pro čtení nebo zápis, Flush() provádí následující dvě funkce:
Všechna data dříve zapsaná do vyrovnávací paměti se zkopírují do souboru a vyrovnávací paměť se vymaže s výjimkou stavu kodéru.
true
Pokud BufferedStream.CanSeek jsou a data byla dříve zkopírována ze souboru do vyrovnávací paměti pro čtení, aktuální pozice v souboru se sníží o počet nepřečtených bajtů ve vyrovnávací paměti. Vyrovnávací paměť se pak vymaže.
Flush(Boolean) Přetížení metody použijte, pokud chcete zajistit, aby se na disk zapisovala všechna data ve vyrovnávací paměti v vyrovnávací paměti zprostředkujících souborů.
Viz také
Platí pro
Flush(Boolean)
- Zdroj:
- FileStream.cs
- Zdroj:
- FileStream.cs
- Zdroj:
- FileStream.cs
Vymaže vyrovnávací paměti pro tento datový proud a způsobí zápis všech dat do vyrovnávací paměti do souboru a také vymaže všechny přechodné vyrovnávací paměti souborů.
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
vyprázdnit všechny vyrovnávací paměti mezilehlého souboru; v opačném případě . false
Poznámky
Toto přetížení použijte, pokud chcete zajistit, aby se na disk zapisovala všechna data ve vyrovnávací paměti v vyrovnávací paměti zprostředkujících souborů.
Při volání Flush metody se vyprázdní také vstupně-výstupní vyrovnávací paměť operačního systému.