我正在尝试从使用 httpClient 从互联网打开的 html 文件中读取一些数据。我正在使用readLine()
循环中的函数进行阅读。
我要阅读的行从第 500 行开始。有没有更快的方法来定位文件?
问题是读取所有不必要的数据需要太长时间(几乎 10 秒才能完成全部加载)。
在 InputStream 中,您可以使用跳过多个字符skip(long n)
您必须越过 499getline()
个行终止字符才能到达第 500 行(如以'\n'
,'\r'
或终止的行"\r\n"
)。
线的定义是基本问题。由于使用上述终止符(大多数语言中的标准定义)终止行,因此对于任何跳过n
行的算法,该算法都需要发现n
行终止符。这意味着需要检查输入流byte/char
以byte/char
发现终止符,从而得出结论,虽然您只能跳过字符,但不能跳过行。这里跳过意味着不需要检查数据(无论是在您的代码中还是在库代码中),例如。随机访问文件类型seek()
或文件流skip(n)
操作。
因此,您可能需要重新考虑您的数据结构,或者是否需要跳过行。