В чем разница в функциональности между 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);
}