在C#中重写txt文件

本文关键字:txt 文件 重写 | 更新日期: 2023-09-27 18:16:06

更新很抱歉没有解释清楚。我想要的输出是用新的文本更新保存文件,而不是在行尾继续写。不确定我的解释是否正确。如果我错了,请纠正我。非常感谢。


试图覆盖整个.txt文件。但它只是继续在文件中添加更多的行,而不是覆盖它。尝试在outfile中设置true,但仍然不起作用。如果有人能教我如何覆盖文本文件,那就太好了。

提前谢谢。

   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();
        }

在C#中重写txt文件

使用FileMode.Create而不是FileMode.Append

  • Create在不存在的情况下创建一个新文件,如果存在则覆盖该文件
  • Append确实在末尾附加了它

请参阅http://msdn.microsoft.com/library/system.io.filemode%28v=vs.110%29.aspx

只需使用FileMode.Create而不是FileMode.Append

他们都会检查文件是否不存在,创建它,然后从第一个开始写入文件。

但不同的是,"追加">不会删除旧数据并在文件末尾添加新数据,而是《创建》首先删除所有旧数据,然后在文件的第一个中写入新数据。