我试图制作一个脚本,逐行读取一个TXT文件,并根据里面的内容改变标签。
这个例子使用StreamReader类的ReadLine方法将文本文件的内容一行一行的读取到一个字符串中,你可以检查该行的字符串是否与你想要的标签匹配,然后用该标签替换。
int counter = 0;
string line;
System.IO.StreamReader file = new System.IO.StreamReader(@"c:\test.txt");
while((line = file.ReadLine()) != null)
{
System.Console.WriteLine(line);
counter++;
}
file.Close();
System.Console.WriteLine("There were {0} lines.", counter);
System.Console.ReadLine();
或
using System;
using System.IO;
public class Example
{
public static void Main()
{
string fileName = @"C:\some\path\file.txt";
using (StreamReader reader = new StreamReader(fileName))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
}
希望能帮到你。
你可以试试 查询 借助 线路:
using System.IO;
using System.Linq;
...
var modifiedLines = File
.ReadLines(@"c:\myInitialScript.txt") // read file line by line
.Select((line, number) => {
//TODO: relevant code here based on line and number
// Demo: return number and then line itself
return $"{number} : {line}";
})
// .ToArray() // uncomment if you want all (modified) lines as an array
;
如果你想把修改过的行写到文件中。
File.WriteAllLines(@"c:\MyModifiedScript.txt", modifiedLines);
如果你坚持 StreamReader
,你可以实现一个 for
循环。
using (StreamReader reader = new StreamReader("c:\myInitialScript.txt")) {
for ((string line, int number) record = (reader.ReadLine(), 0);
record.line != null;
record = (reader.ReadLine(), ++record.number)) {
//TODO: relevant code here
// record.line - line itself
// record.number - its number (zero based)
}
}