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

时间:2016-06-03 13:23:56

标签: c#-4.0 filestream

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

2 个答案:

答案 0 :(得分:2)

虚空操作系统和文件系统还没有找到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();

答案 1 :(得分:0)

如果您的文件不是太大:

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

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