Когда вы вызываете Flush()
или Flush(false)
, FileStream
"копирует в файл любые данные, ранее записанные в буфер, и очищает буфер (кроме его состояния кодера)". Буфер здесь означает внутренний буфер класса FileStream
. И копирование в файл не означает запись данных на диск. Это просто передача данных в ОС.
Но операции ввода-вывода в ОС Windows также буферизуются - запись данных на диск может быть отложена до тех пор, пока система не будет готова это сделать. Таким образом, очистка всех промежуточных буферов обеспечивает запись буферизованных данных на диск. Буферы здесь означают внутренние буферы Windows [кэш файловой системы].
Кстати, когда вы закрываете файл, все буферизованные данные будут записаны на диск автоматически. Таким образом, этот материал нужен вам только в том случае, если вам нужно сбросить данные до закрытия дескриптора файла.