FileStream.Flush Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
trueen 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.