Я использую StreamWriter для записи данных в файл. Данные - это (потенциально) длинная строка, которая должна быть сохранена полностью.
Я видел случаи, когда файл создается, но его содержимое - не вся строка; то есть - кажется, что строка была «вырезана» во время сохранения, а не сохранена полностью.
У меня есть «ошибочный» файл, содержащий ровно 4096 символов, что в точности соответствует длине используемого внутреннего буфера. классом StreamWriter.
Пример, подобный коду, который мы используем:
string output = "......" // long string
sw = File.CreateText(filename);
if (fileWriter == null)
{
return;
}
try
{
sw.Write (output);
}
finally
{
if (sw != null)
{
sw.Close ();
}
}
Мой вопрос :
это ожидаемый сценарий? Например: может StreamWriter записать только часть строки, которую следует сохранить? если так, есть ли простой способ преодолеть это?