在C#中编辑文本文件的特定行

我有两个文本文件,Source.txt和Target.txt。源将永远不会被修改并且包含N行文本。因此,我想删除Target.txt中的特定文本行,并用Source.txt中的特定文本行替换,我知道我需要多少行,实际上是第2行,两个文件。


我还没有这样的东西:


string line = string.Empty;

int line_number = 1;

int line_to_edit = 2;


using (StreamReader reader = new StreamReader(@"C:\source.xml"))

{

    using (StreamWriter writer = new StreamWriter(@"C:\target.xml"))

    {

        while ((line = reader.ReadLine()) != null)

        {

            if (line_number == line_to_edit)

            {

                writer.WriteLine(line);

            } 


            line_number++;

        }

    }

}

但是,当我打开Writer时,目标文件将被擦除,并写入行,但是当打开时,目标文件仅包含复制的行,其余的行将丢失。


我能做什么?


泛舟湖上清波郎朗
浏览 874回答 3
3回答

扬帆大鱼

当您创建StreamWriter它总是从头开始创建一个文件,你必须创建第三个文件,并从目标复制和替代你需要什么,然后替换旧的。但正如我看到的那样,您需要的是XML操作,您可能希望XmlDocument使用Xpath 来使用和修改文件。
打开App,查看更多内容
随时随地看视频慕课网APP