C#将文本文件从特定位置读取到EOF
试图找到一种阅读文本文件的好方法,找到某个短语的最后一个实例,并从该点开始将文件读到最后 简化示例C#将文本文件从特定位置读取到EOF,c#,readline,eof,C#,Readline,Eof,试图找到一种阅读文本文件的好方法,找到某个短语的最后一个实例,并从该点开始将文件读到最后 简化示例 sometext1... sometext2... [new] sometext3... [new] sometext4... sometext5... [new] sometext6... sometext7... “我要退货”是最后一部分 [new] sometext6... sometext7... 我可以想办法做到这一点,但我相信有一个非常有效的方法。 猜测必须找到“[new]”的最后
sometext1...
sometext2...
[new]
sometext3...
[new]
sometext4...
sometext5...
[new]
sometext6...
sometext7...
“我要退货”是最后一部分
[new]
sometext6...
sometext7...
我可以想办法做到这一点,但我相信有一个非常有效的方法。
猜测必须找到“[new]”的最后一个索引并从中读取。您可以打开一个文件流,将其包装到TextReader中,然后将Position属性的值保存在FileStream实例中。它允许您保存[新]令牌的位置。假设:
var text = File.ReadAllText(theFile);
var tail = text.SubString(text.LastIndexOf("[New]"));
using(TextReader tr = new StreamReader(filePath))
{
StringBuilder sb = new StringBuilder();
for(string line = tr.ReadLine(); line != null; line = tr.ReadLine())
if(line == "[new]")
sb = new StringBuilder("[new]");//flush last chunk read.
else
sb.Append('\n').Append(line);
return sb.ToString();
}
你能展示一下你为解决这个问题而试图写的代码吗?这个文件有多大?它必须有多快?短语总是只有一行吗?下面Jon的sanwser就像我需要的那样工作。这很接近,但索引只针对第1行。没有处理换行和返回字符。谢谢工作完美。它只是一个真正简单的文本文件(日志),只想显示最后一个条目。谢谢