更新 很抱歉没有清楚地解释清楚。我想要的输出是用新文本更新保存文件而不是继续在行尾写入。不确定我是否正确解释。如果我错了,请纠正我。谢谢。
试图覆盖整个.txt文件。但它只会继续添加更多行到文件而不是覆盖它。尝试将内部文件置于内部,但仍然无法正常工作。 如果有人能教我如何覆盖文本文件,那将是很棒的。
提前致谢。
private void bttSave_Click(object sender, EventArgs e)
{
outFile = new FileStream(FILENAME, FileMode.Append, FileAccess.Write); //Creating a file stream object to open file for reading
writer = new StreamWriter(outFile); //creating a stream writer with the outfile file stream object
for(int i = 0; i < DataGridResult.RowCount; i++)
{
writer.WriteLine(adminNoTxt.Text + DELIM + DataGridResult.Rows[i].Cells[0].Value.ToString() + DELIM + DataGridResult.Rows[i].Cells[1].Value.ToString() + DELIM + DataGridResult.Rows[i].Cells[2].Value.ToString());
//using stream writer to write a record
}
writer.Close();
outFile.Close();
}
答案 0 :(得分:6)
使用FileMode.Create
代替FileMode.Append
。
Create
创建一个新文件(如果它不存在)或覆盖它(如果存在)。 Append
会在最后添加。请参阅http://msdn.microsoft.com/library/system.io.filemode%28v=vs.110%29.aspx
答案 1 :(得分:1)
只需使用FileMode.Create
代替FileMode.Append
。
他们都检查文件是否不存在,创建它,然后从第一个文件写入文件。
但区别在于“追加”不会删除旧数据并在文件末尾添加新数据,但“创建”会删除所有旧数据首先是数据,然后在文件的第一个中写入新数据。