【发布时间】:2010-05-20 22:16:59
【问题描述】:
我需要从文本文件中删除最后一行。我知道如何在 C# 中打开和保存文本文件,但是如何去掉文本文件的最后一行?
文本文件的大小总是不同的(有些有 80 行,有些有 20 行)。
有人可以告诉我怎么做吗?
谢谢。
【问题讨论】:
我需要从文本文件中删除最后一行。我知道如何在 C# 中打开和保存文本文件,但是如何去掉文本文件的最后一行?
文本文件的大小总是不同的(有些有 80 行,有些有 20 行)。
有人可以告诉我怎么做吗?
谢谢。
【问题讨论】:
用少量的行,你可以很容易地使用这样的东西
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);
【讨论】:
对于小文件,一种简单的方法(尽管远非最有效)是:
string[] lines = File.ReadAllLines(fileName);
Array.Resize(ref lines, lines.length - 1);
File.WriteAllLines(fileName, lines);
【讨论】: