关于.net:替换文本文件中的文本c#

Replace Text in a TextFile c#

替换文本文件中的文本的最佳方法是什么?

  • 我不想给文件起个新名字
  • 我不希望文本成为一个长字符串,这是当我使用file.readalltext时所发生的,因为它存储为一个字符串,而我松散回车等…
  • 另外,我想我会遇到使用streamreader/streamwriter的问题,因为您不能读写同一个文件?

    谢谢


    您可以使用一个为读写而打开的流来完成此操作:

    1
    2
    3
    4
    5
    6
    7
    FileStream fileStream = new FileStream(@"c:\myFile.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
    var streamWriter = new StreamWriter(fileStream);
    var streamReader = new StreamReader(fileStream);

    ...

    fileStream .Close();

    但最简单的方法还是读取所有文件,编辑文本并将其写回文件:

    1
    2
    3
    4
    5
    var text = File.ReadAllText(@"c:\myFile.txt");

    ...

    File.WriteAllText(@"c:\myFile.tx", text);


    根据文件格式的不同,还可以逐行读取文件(使用file.readlines),并对每行执行文本替换。

    对于基于流的变量,您也可以参考这个答案,如果您的文件很大,这是首选的方法。

    如何在.NET中读取大型(1 GB)TXT文件?