teq*_*ras 0 c# file-io line-by-line
我正在逐行读取文件,我想编辑我读过的一些行.我想编辑的行必须在它们上面或下面有一些其他特定行,但我不知道如何在C#中表达.例如:
http://www.youtube.com
You Tube | Music | something
Sports
Music
Radio
Clips
http://www.youtube.com/EDIT ME
Sports
Music
Radio
Clips
Run Code Online (Sandbox Code Playgroud)
我想只在下一行编辑一行
Sports
Run Code Online (Sandbox Code Playgroud)
而上一行是
Clips
Run Code Online (Sandbox Code Playgroud)
所以我想从上面的例子中编辑的唯一一行是
http://www.youtube.com/EDIT ME
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
你无法逐行"编辑"文件.最好采用以下两种方法之一:
File.ReadAllLines,然后在内存中进行适当的更改并重写整个内容(例如使用File.WriteAllLines)第一个版本更简单,但显然需要更多内存.如你所说,如果你需要查看下一行和上一行,这一点尤其棘手.
第一种方法的简单示例:
string[] lines = File.ReadAllLines("foo.txt");
for (int i = 1; i < lines.Length - 1; i++)
{
if (lines[i - 1] == "Clips" && lines[i + 1] == "Sports")
{
lines[i] = "Changed";
}
}
File.WriteAllLines("foo.txt", lines);
Run Code Online (Sandbox Code Playgroud)