对于我正在做的项目,我必须做的一件事是删除明文文件的第一行X行。我说的是X,因为我需要多次执行此例程,每次删除的行都会不同,但它们总是从头开始,删除第一行,然后将结果输出到同一个文件。如何删除文本文件的第一个“X”行?
我想到做这样的事情,这是我从其他的教程和例子,我读拼凑:
String line = null;
String tempFile = Path.GetTempFileName();
String filePath = openFileDialog.FileName;
int line_number = 0;
int lines_to_delete = 25;
using (StreamReader reader = new StreamReader(originalFile)) {
using (StreamWriter writer = new StreamWriter(tempFile)) {
while ((line = reader.ReadLine()) != null) {
line_number++;
if (line_number <= lines_to_delete)
continue;
writer.WriteLine(line);
}
}
}
if (File.Exists(tempFile)) {
File.Delete(originalFile);
File.Move(tempFile, originalFile);
}
但我不知道这是否会因为像行号的小东东工作从第0行开始或者什么都不...也不知道在效率和形式方面它是否是好代码。
非常感谢。
这工作,因为当我再次做reader.ReadLine(),将恢复从阅读离开的地方,对不对? 如果我想让另一个阅读器称为“阅读器”(因为这将在一个更大的循环中重复这个过程多次),我只需要关闭“阅读器”,然后当我做出另一个时,它会开始从文件开始回来,对吗? – ankushg 2009-10-03 23:37:40
@Unk,这是对这个评论中的两个问题。 – 2009-10-04 01:12:46
非常感谢! – ankushg 2009-10-04 01:23:12