.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 が含まれている場合、最後に、ファイルには op の最後に AAAABBBB が含まれます。
ファイルを完全に上書きする方法の手がかりはありますか? - たとえば、上記の例では、最終的な出力は AAAA である必要があります。これが純粋なストリーム関連のものかどうかはよくわかりませんが、ファイルストリームでこの問題が発生したことはありません。
リセットメソッドを書くか、単にメモリストリームに出力してファイルを上書きするだけで満足ですが、可能であればこのように動作させたいです! **編集:'' を呼び出すことで動作するようになりました
fileStream.SetLength(0);
ファイルを開くとき。しかし、もっと良い方法があれば教えていただければ幸いです。