在文本中的确切位置附加文本

时间:2018-02-22 22:45:47

标签: c#

我希望将文字附加到文本文件中的确切位置。我使用StreamReader来查找我要查找的文件中的文本。我想过使用StreamWriter,但这显然没有意义。我希望在某个类别的某个类中找到一些“附加”方法,这可以帮助我做到这一点,但现在已经成功了。或者有没有比使用StreamReader更好的方法?

  using (StreamReader sr = new StreamReader(fileName))
        {
            string line;

            while ((line = sr.ReadLine()) != null)
            {
                if (line.Contains("VAR_GLOBAL CONSTANT"))
                {
                    //append text before this variable
                    // e.g.  (*VAR_GLOBAL CONSTANT 
                    // append the (*  before VAR_GLOBAL CONSTANT
                }
                if (line.Contains("END_VAR"))
                {
                    //append text after this variable
                    // e.g.   END_VAR*)
                    // append the *) after END_VAR
                }
            }
        }

有没有人对如何做到这一点有任何想法?

1 个答案:

答案 0 :(得分:2)

一种方法是将文件内容读入字符串,在本地更新内容,然后再将其写回文件。这对于真正大的文件来说可能不太可行,特别是如果最后完成追加,但它是一个开始:

var filePath = @"f:\public\temp\temp.txt";

var appendBeforeDelim = "VAR_GLOBAL CONSTANT";
var appendAfterDelim = "END_VAR";

var appendBeforeText = "Append this string before some text";
var appendAfterText = "Append this string after some text";

var newFileContents = File.ReadAllText(filePath)
    .Replace(appendBeforeDelim, $"{appendBeforeText}{appendBeforeDelim}")
    .Replace(appendAfterDelim, $"{appendAfterDelim}{appendAfterText}");

File.WriteAllText(filePath, newFileContents);