Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo FileStream.Flush ()

 

Data di pubblicazione: ottobre 2016

Cancella i buffer del flusso e fa sì che i dati memorizzati nel buffer vengano scritti nel file.

Spazio dei nomi:   System.IO
Assembly:  mscorlib (in mscorlib.dll)

public override void Flush()

Exception Condition
IOException

Errore di I/O.

ObjectDisposedException

Il flusso è chiuso.

Questo metodo esegue l'override Stream.Flush.

Quando si chiama il FileStream.Flush (metodo), il buffer dei / o del sistema operativo viene inoltre scaricata.

Il codificatore del flusso non viene scaricato a meno che non chiama in modo esplicito Flush o dispose dell'oggetto. L'impostazione StreamWriter.AutoFlush per true i dati verranno svuotati dal buffer nel flusso, ma lo stato del codificatore non verrà rimosso. In questo modo il codificatore di mantenere lo stato (caratteri parziali) in modo che può codificare correttamente il blocco successivo di caratteri. Questo scenario riguarda UTF8 e UTF7, in cui alcuni caratteri possono essere codificati solo dopo che il codificatore riceve adiacenti carattere o caratteri.

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

  • Il file viene copiati i dati scritti in precedenza nel buffer e liberare il buffer tranne lo stato del codificatore.

  • Se BufferedStream.CanSeek è true e 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 letti nel buffer. Il buffer viene quindi cancellato.

Utilizzare il Flush(Boolean) overload del metodo quando si desidera garantire che tutti i dati memorizzati nel buffer di file intermedi vengono scritti su disco.

Questo esempio di codice fa parte di un esempio più esaustivo 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.");
    }

Universal Windows Platform
Disponibile da 10
.NET Framework
Disponibile da 1.1
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Torna all'inizio
Mostra: