写入时覆盖文件中的行
本文关键字:文件 覆盖 | 更新日期: 2023-09-27 17:55:32
我正在使用在读写模式下打开的流阅读器读取文件。我的要求是检查文件中的特定文本,如果找到,请用新行替换该行。
目前,我已经初始化了一个用于写作的StreamWriter
。
它正在将文本写入文件,但它将其附加到新行。
那么我应该怎么做才能替换特定的行文本呢?
System.IO.FileStream oStream = new System.IO.FileStream(sFilePath, System.IO.FileMode.Append, System.IO.FileAccess.Write, System.IO.FileShare.Read);
System.IO.FileStream iStream = new System.IO.FileStream(sFilePath, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite);
System.IO.StreamWriter sw = new System.IO.StreamWriter(oStream);
System.IO.StreamReader sr = new System.IO.StreamReader(iStream);
string line;
int counter = 0;
while ((line = sr.ReadLine()) != null)
{
if (line.Contains("line_found"))
{
sw.WriteLine("line_found false");
break;
}
counter++;
}
sw.Close();
sr.Close();
嗨,
请尝试以下代码....它会帮助你。
替换文本文件中的所有 HI...
var fileContents = System.IO.File.ReadAllText(@"C:'Sample.txt");
fileContents = fileContents.Replace("Hi","BYE");
System.IO.File.WriteAllText(@"C:'Sample.txt", fileContents);
替换特定行中的 HI
.... string[] lines = System.IO.File.ReadAllLines("Sample.txt");
for (int i = 0; i < lines.Length; i++)
{
if(lines[i].Contains("hi"))
{
MessageBox.Show("Found");
lines[i] = lines[i].Replace("hi", "BYE");
break;
}
}
System.IO.File.WriteAllLines("Sample.txt", lines);