首先,我不是使用c#的最有经验的人,我到目前为止唯一做的就是阅读整个文本文件。
我想阅读文本文件的最后几行,我最终需要为几个文本文件执行此操作,并且每个文本文件的格式都相同,大致相同我想要遗漏的80多条信息,然后是“#Footer'如果可能的话,我希望阅读该特定单词之后的所有内容(大约我会在单词'#Footer'之后保留大约6/7行)文件)。
关于我如何做到这一点的任何想法?感谢
答案 0 :(得分:6)
您可以使用不需要将整个文件加载到内存的File.ReadLines。
var lines = File.ReadLines(fname)
.SkipWhile(line => !line.StartsWith("#Footer"))
.Skip(1)
.ToList();
修改强>
Console.WriteLine(String.Join(Environment.NewLine, lines));
答案 1 :(得分:0)
private String GetFooter(String filePath)
{
String inputText = "#Footer";
String footerText ="";
String [] allFileLines=(String[])File.ReadLines(filePath).ToArray();
int footerLineNo = -1;
for (int i = 0; i < allFileLines.Length; i++)
{
if (allFileLines[i].Contains(inputText))
footerLineNo = i;
}
if (footerLineNo > -1)
{
for (int i = footerLineNo + 1; i < allFileLines.Length; i++)
footerText += allFileLines[i]+"\n";
}
return footerText;
}
答案 2 :(得分:0)
试试这个
bool check= false;
string myline;
string mytext = "";
StreamReader reader = new StreamReader("temp.txt");
while ((myline= reader.ReadLine()) != null)
{
if (myline.Contains("#Footer") || check)
{
check= true;
mytext += line;
}
}