Я пытаюсь использовать шаблоны NVelocity в приложении .Net: использовать шаблон для вывода результатов в файл. Кажется, все работает нормально, за исключением того факта, что вывод никогда не перезаписывается полностью. Если мой файл имеет длину 100 символов и шаблон отображает только 20 символов, последние 80 символов никогда не изменяются!
Пример кода:
FileStream fileStream = new FileStream(outputPath, FileMode.OpenOrCreate, FileAccess.Write);
using (StreamWriter streamWriter = new StreamWriter(fileStream))
{
velocityEngine.MergeTemplate(templateName, Encoding.Default.WebName, velocityContext, streamWriter);
}
Так что, если мой шаблон выводит AAAA, а файл уже содержит BBBBBBBB, то в конце файл содержит AAAABBBB в конце операции.
Любая подсказка, как я могу получить его, чтобы полностью перезаписать файл? - например, в приведенном выше примере конечный результат должен быть AAAA. Не уверен, что это просто чистый поток, но у меня не было этой проблемы с файловыми потоками.
Рад написать метод сброса, или просто вывести в поток памяти и перезаписать файл, но я бы хотел, чтобы он работал так, если это возможно!
** РЕДАКТИРОВАТЬ: '' все заработало, позвонив по номеру
fileStream.SetLength(0);
когда я открываю файл. Но был бы признателен, если бы знал, есть ли лучший способ!