如何覆盖文本文件的最后一行

How to overwrite the last line of text file

FileStream files = new FileStream("text.txt", FileMode.Append, FileAccess.Write);                       
StreamWriter cmdswriter = new StreamWriter(files);
cmdswriter.Write("last line content");

Nether OS 和 Filesystem 都不知道什么是 line。您必须打开一个文件,在末尾查找并向后读取,直到获得 end-of-line 字符。此位置之后的所有内容都是最后一行。

FileStream files = new FileStream("text.txt", FileMode.Append, FileAccess.Write);
StreamWriter cmdswriter = new StreamWriter(files);
cmdswriter.BaseStream.Seek("line content to overwrite".Length * -1, SeekOrigin.End);
cmdswriter.Write("last line content");
cmdswriter.Flush();
cmdswriter.Close();

如果您的文件不是太大:

string path = "text.txt";
var fileContent = File.ReadLines(path).ToList();

fileContent[fileContent.Count - 1] = "last line content";
File.WriteAllLines(path, fileContent);