从文件中删除行

时间:2014-03-19 12:15:37

标签: c# asp.net text filestream

我尝试从包含特定单词的文本文件中删除一行。但是我需要一种更好的方法来删除该行。

以下是我使用的代码:

 var oldLines = System.IO.File.ReadAllLines(filepath);
            var newLines = oldLines.Where(line1 => !line1.Contains("Value"));
            System.IO.File.WriteAllLines(filepath, newLines);

通过使用此任务已完成,但出现以下性能问题:如果文件包含10万行,则必须读取10行的行并写入10万行,因此需要更多时间。

1 个答案:

答案 0 :(得分:1)

string line = null;
string line_to_delete = "sample line i want to delete";

using (StreamReader reader = new StreamReader("C:\\input")) {
    using (StreamWriter writer = new StreamWriter("C:\\output")) {
        while ((line = reader.ReadLine()) != null) {
            if (String.Compare(line, line_to_delete) == 0)
                continue;   
            writer.WriteLine(line);
        }
    }
}