我希望将文字附加到文本文件中的确切位置。我使用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
}
}
}
有没有人对如何做到这一点有任何想法?
答案 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);