【发布时间】:2009-02-20 16:08:49
【问题描述】:
我正在尝试在 .Net 应用程序中使用 NVelocity 模板:使用模板将结果输出到文件。除了输出永远不会被完全覆盖之外,这一切似乎都运行良好。如果我的文件有 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);
当我打开文件时。但如果有更好的方法,将不胜感激!
【问题讨论】:
标签: c# filestream velocity nvelocity