之前删除前面的所有文本
我读过很多关于使用Streamwriter的文章。至少我有一个几乎可以工作的解决方案——但是在一些文件中,最后一行被追加了两次。我试着在写作结束时插入Flush(),甚至在每个if语句之后,但行为保持不变。也许有人知道答案,可以帮助我?
用例:我从另一个文件中提取信息并将它们保存在一个对象中(所有信息都被正确存储了——我对此进行了测试)。之后,我调用该方法将存储在对象中的信息写入文件:
for (int i = 0; i < allCMs.Count; i++)
{
using (var stream = File.Open(allCMs[i].dir,
FileMode.OpenOrCreate, FileAccess.Write))
{
using (StreamWriter writer = new StreamWriter(stream))
{
writer.WriteLine(version);
writer.WriteLine();
if (allCMs[i].name != null)
{
writer.WriteLine(addProject(allCMs[i].name));
writer.WriteLine();
writer.Flush();
}
if (allCMs[i].header != null)
{
writer.WriteLine(addHeader(allCMs[i].header));
writer.WriteLine();
writer.Flush();
}
if (allCMs[i].src != null)
{
writer.WriteLine(addSrc(allCMs[i].src));
writer.WriteLine();
writer.Flush();
}
}
}
}
txt中的输出如下所示:
project: projectname
header: header
src: source
src: source
或者有时像这样:
project: projectname
header: header
src: source
: source
(为了便于理解,我简化了文件)
您打开或创建文件,而看起来您希望每次都以一个空白文件开始。您所引用的文本可以从以前的运行中留下。看看这个关于如何从一个空文件
开始的问题在写