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