Я столкнулся с чем-то интересным при использовании StreamWriter
с FileStream
для добавления текста в существующий файл в .NET 4.5 (не пробовал никаких старых фреймворков). Я пробовал два пути, один работал, а другой - нет. Мне интересно, какая разница между ними.
Оба метода содержали следующий код в верхней части
if (!File.Exists(filepath))
using (File.Create(filepath));
У меня есть создание в using
, потому что я нашел на собственном опыте, что это лучший способ убедиться, что приложение полностью закрывает файл.
Нерабочий метод:
using (FileStream f = new FileStream(filepath, FileMode.Append,FileAccess.Write))
(new StreamWriter(f)).WriteLine("somestring");
С помощью этого метода ничто не добавляется к файлу.
Рабочий метод:
using (FileStream f = new FileStream(filepath, FileMode.Append,FileAccess.Write))
using (StreamWriter s = new StreamWriter(f))
s.WriteLine("somestring");
Я сделал немного Googling, не зная, что искать, и не нашел ничего информативного. Итак, почему анонимный StreamWriter
не работает, где работает (не анонимный? Named?) StreamWriter
?