C # StreamWriter - Wann wird der Stream physisch in die Datei geschrieben?

8

In meiner App verwende ich einen StreamWriter, um Daten in eine Datei zu streamen. Werden tatsächlich Bytes in die Datei geschrieben, bevor die Close () -Methode aufgerufen wird? Wenn die Antwort nein ist, ist das wahr, egal wie groß der Stream ist?

Randy

    
Randy Minder 04.01.2010, 19:30
quelle

3 Antworten

18

Der StreamWriter hat einen internen Puffer, und sobald dieser Puffer voll ist, wird er auf den Datenträger geleert. Sie können es jederzeit durch Aufruf von Flush()

auf die Festplatte spülen

Sie können angeben, wie groß ein Puffer in den Konstruktoren von StreamWriters sein soll, wenn Sie möchten.

    
Matt Greer 04.01.2010, 19:34
quelle
2

Stream wird von StreamWriter.Flush geschrieben.

>     
Li0liQ 04.01.2010 19:33
quelle
0

Es hängt vom zugrunde liegenden Stream ab, der verwendet wird, der Größe des Puffers in diesem Stream und anderen Faktoren.

Sie können einen Schreibvorgang für den zugrunde liegenden Stream erzwingen, indem Sie flush () auf Ihrem StreamWriter aufrufen.

Ich gehe von Ihrer Frage aus, dass Sie darunter einen Dateistream verwenden. Nach meiner Erfahrung tritt der Flush im Allgemeinen zwischen allen 1-4K Daten auf, aber ich bin mir nicht sicher, was der genaue Punkt ist.

    
GrayWizardx 04.01.2010 19:34
quelle

Tags und Links