FileStream.Flush Metodo

Definizione

Cancella i buffer per questo flusso e fa in modo che tutti i dati memorizzati nel buffer vengano scritti nel file.

Overload

Nome Descrizione
Flush()

Cancella i buffer per questo flusso e fa in modo che tutti i dati memorizzati nel buffer vengano scritti nel file.

Flush(Boolean)

Cancella i buffer per questo flusso e determina la scrittura di tutti i dati memorizzati nel buffer nel file e cancella anche tutti i buffer di file intermedi.

Flush()

Cancella i buffer per questo flusso e fa in modo che tutti i dati memorizzati nel buffer vengano scritti nel file.

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

Eccezioni

Si è verificato un errore di I/O.

Il flusso è chiuso.

Esempio

Questo esempio di codice fa parte di un esempio più ampio fornito per il Lock metodo .

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

Commenti

Questo metodo esegue l'override di Stream.Flush.

Quando si chiama il FileStream.Flush metodo , viene scaricato anche il buffer di I/O del sistema operativo.

Il codificatore di un flusso non viene scaricato a meno che non si chiami Flush o non si elimini esplicitamente l'oggetto. L'impostazione StreamWriter.AutoFlush su true indica che i dati verranno scaricati dal buffer al flusso, ma lo stato del codificatore non verrà scaricato. Ciò consente al codificatore di mantenere lo stato (caratteri parziali) in modo che possa codificare correttamente il blocco successivo di caratteri. Questo scenario influisce su UTF8 e UTF7 in cui determinati caratteri possono essere codificati solo dopo che il codificatore riceve il carattere o i caratteri adiacenti.

Poiché un buffer può essere usato per la lettura o la scrittura, Flush() esegue le due funzioni seguenti:

  • Tutti i dati scritti in precedenza nel buffer vengono copiati nel file e il buffer viene cancellato, ad eccezione del relativo stato del codificatore.

  • Se BufferedStream.CanSeek è true e i dati sono stati copiati in precedenza dal file nel buffer per la lettura, la posizione corrente all'interno del file viene decrementata dal numero di byte non letti nel buffer. Il buffer viene quindi cancellato.

Usare l'overload del Flush(Boolean) metodo quando si vuole assicurarsi che tutti i dati memorizzati nel buffer intermedio dei file vengano scritti su disco.

Vedi anche

Si applica a

Flush(Boolean)

Cancella i buffer per questo flusso e determina la scrittura di tutti i dati memorizzati nel buffer nel file e cancella anche tutti i buffer di file intermedi.

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)

Parametri

flushToDisk
Boolean

true per scaricare tutti i buffer di file intermedi; in caso contrario, false.

Commenti

Usare questo overload quando si vuole assicurarsi che tutti i dati memorizzati nel buffer intermedio dei file vengano scritti su disco.

Quando si chiama il Flush metodo , viene scaricato anche il buffer di I/O del sistema operativo.

Vedi anche

Si applica a