有关StreamReader的Position问题
在用StreamReader读取资料时,我希望得到某行资料在文件中的位置,不过当我使用StreamReader.BaseStream.Position时,该position是缓存中的值,都是1K的倍数,根本不是该行资料在文件中的实际地址。不知应该如何解决该问题,谢谢!
private void test(string path)
{
long offset = 0;
string line = null;
StreamReader sr = new StreamReader(path, Encoding.GetEncoding("Shift-JIS"));
while((line = sr.ReadLine()) != null)
{
if (line.IndexOf("<a name=") != -1)
{
//资料在文件中的位置
offset = sr.BaseStream.Position;
continue;
}
if (line.IndexOf("</div>") != -1)
{
ParseRecord(offset);
return true;
}
if (line.IndexOf("</body>") != -1)
{
return false;
}
}
}