1

我这里有问题。我有一个 .txt 文件,其中一行包含“消息”,这是我要更改的行。但我无法让这段代码工作,任何人都可以帮助我吗?我这里有这段代码,它只用于替换字符串,但我不知道该怎么做,所以它改变了整行。

public void t()
{
   string filename = @"F:\test\test.txt";
   StringBuilder result = new StringBuilder();

   if (System.IO.File.Exists(filename))
   {
       using (StreamReader streamReader = new StreamReader(filename))
       {
           String line;
           while ((line = streamReader.ReadLine()) != null)
           {
              string newLine = String.Concat(line, Environment.NewLine);
              newLine = newLine.Replace("message", "HEJHEJ ");
              result.Append(newLine);
           }
       }
   }

   using (FileStream fileStream = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite))
   {
       StreamWriter streamWriter = new StreamWriter(fileStream);
       streamWriter.Write(result);
       streamWriter.Close();
       fileStream.Close();
   }
}

此代码将“”更改为“HEJHEJ”,但我想将 txt 文档中的整行更改为“HEJHEJ”,而不仅仅是“消息”部分

4

2 回答 2

2

如何改变这个:

string newLine = String.Concat(line, Environment.NewLine);
newLine = newLine.Replace("message", "HEJHEJ ");
result.Append(newLine);

对此:

string newLine;
if (line.Contains("message")) {
    newLine = String.Concat("HEJHEJ ", Environment.NewLine);
}
else {
    newLine = String.Concat(line, Environment.NewLine);
}
result.Append(newLine);

当然,有很多更清洁的方法可以做到这一点。

于 2012-10-31T17:21:33.493 回答
0

我的 txt 文档中包含以下内容:

消息你好世界

使用您的代码,此行更改为:

海杰杰

世界

//我希望它是:

海杰杰

所以最后,我希望它更改/替换为包含“消息”的整行文本

于 2012-11-01T08:40:18.880 回答