C#:String.IndexOf到FileStream.Seek

pis*_*hio 1 c#

有一个我用StreamReader读取的FileStream(它是一个非常大的文件),如何将FileStream的Seek位置设置为某个子串的第一次出现,以便我可以从给定的点开始读取这个大文件?

谢谢

Joh*_*ers 6

文件中有什么?只是Unicode文本行?那你就遇到了问题.

在您至少读过所有前面的行之前,您永远不会知道行开头的位置.除非文件以UTF-32编码,否则每个字符可能需要可变数量的字节来表示它.每一行都有一个可变长度.

您可以做的最好的事情是扫描文件一次,然后在索引中记下行开头的位置.