2012-04-04 30 views

回答

1

StreamReader类是逐行读取文件的典型选择。它不保留它在文件中读取的任何历史记录,因此不知道最后一行的结尾或下一行的位置。当请求时(通过ReadLine),它只是处理字符,直到它到达新的行字符串或文件的结尾。

我不知道StreamReader的实际实现,但我会假设它使用Encoding类来处理多字节编码,并且只维护一个可能预读取数据的小缓冲区以提高读取性能(读取块比现在需要的10个字节更好)。任何其他缓冲区(例如当前行中的字符)都会使当地人像ReadLine那样需要它们。

如果您需要随机查找,则需要使用BaseStream属性为自己生成行起始表,然后将该流找到所需行的开头。从那里,你应该可以照常使用ReadLine

+0

我注意到streamreader没有偏移属性。这是基地流踢什么地方?是的,我会需要线开始表我想 – 2012-04-04 05:25:01

+0

+1。这是东西。我知道了。 – 2012-04-04 05:56:13

相关问题