Какая разница в функциональности между StreamWriter.Flush()
и StreamWriter.Close()
?
Когда мои данные не были правильно записаны в файл, я добавил Flush()
и Close()
в конец кода. Однако я понял, что добавление или Flush()
или Close()
позволяет правильно записывать данные.
Мне не удалось точно понять, что делает каждый из этих методов, когда я читаю документы MSDN; Я только понял, что одно или другое необходимо для правильной записи данных. Любое дальнейшее объяснение будет высоко ценится.
Где s
- строка для записи, вот как выглядит мой код:
StreamWriter sw = File.CreateText("TextOutput.txt");
sw.Write(s);
sw.Flush();
sw.Close();
На основе отзывов из ответов я переписал свой код в блоке using
, который реализует IDisposable
и автоматически позаботится о записи потока в файл при удалении объекта:
using (StreamWriter sw = File.CreateText("TextOutput.txt"))
{
sw.Write(s);
}