是的,您可以看到以下内容:
var sr = new StreamReader("test.txt");sr.baseStream.Seek(2, SeekOrigin.Begin); // Check sr.baseStream.CanSeek first更新:
请注意,
sr.baseStream.Position由于
StreamReader使用缓冲区,因此不一定使用任何有用的东西,因此它不会反映您实际阅读的内容。我想您会找不到真正的位置。因为您不能只计算字符(不同的编码以及因此的字符长度)。我认为最好的方法是与
FileStream自己合作。
更新:
使用
TGREER.myStreamReader来自此处的内容:http : //www.daniweb.com/software-
development/csharp/threads/35078
此类添加了此类
BytesRead(可
ReadLine()用于其他reads方法,但显然不能与其他reads方法一起使用),然后可以执行以下操作:
File.WriteAllText("test.txt", "1234n56789");long position = -1;using (var sr = new myStreamReader("test.txt")){ Console.WriteLine(sr.ReadLine()); position = sr.BytesRead;}Console.WriteLine("Wait");using (var sr = new myStreamReader("test.txt")){ sr.baseStream.Seek(position, SeekOrigin.Begin); Console.WriteLine(sr.ReadToEnd());}


