我需要从文本文件中删除最后一行。我知道如何在C#中打开和保存文本文件,但是如何删除文本文件的最后一行?
文本文件的大小总是不同(有些有80行,有些有20行)。
有人可以告诉我该怎么做吗?
感谢。
答案 0 :(得分:4)
使用少量线条,您可以轻松使用类似
的内容string filename = @"C:\Temp\junk.txt";
string[] lines = File.ReadAllLines(filename);
File.WriteAllLines(filename, lines.Take(lines.Count() - 1));
但是,随着文件变大,您可能希望使用类似的内容流入和流出数据
string filename = @"C:\Temp\junk.txt";
string tempfile = @"C:\Temp\junk_temp.txt";
using (StreamReader reader = new StreamReader(filename))
{
using (StreamWriter writer = new StreamWriter(tempfile))
{
string line = reader.ReadLine();
while (!reader.EndOfStream)
{
writer.WriteLine(line);
line = reader.ReadLine();
} // by reading ahead, will not write last line to file
}
}
File.Delete(filename);
File.Move(tempfile, filename);
答案 1 :(得分:3)
对于小文件,一种简单的方法(尽管效率最高)将是:
string[] lines = File.ReadAllLines(fileName);
Array.Resize(ref lines, lines.length - 1);
File.WriteAllLines(fileName, lines);