0

该文件是一个UTF8 文本文件。

每个字符有不同数量的字节,每行有不同数量的字符。

vb.net 是否有行号表到字节位置功能或类似的东西?

还有在那之后怎么读?

4

1 回答 1

1

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

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

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

于 2012-04-04T05:15:59.830 回答