2

我正在尝试从使用 httpClient 从互联网打开的 html 文件中读取一些数据。我正在使用readLine()循环中的函数进行阅读。

我要阅读的行从第 500 行开始。有没有更快的方法来定位文件?

问题是读取所有不必要的数据需要太长时间(几乎 10 秒才能完成全部加载)。

4

2 回答 2

3

在 InputStream 中,您可以使用跳过多个字符skip(long n)

于 2012-05-16T15:54:46.403 回答
1

您必须越过 499getline()个行终止字符才能到达第 500 行(如以'\n','\r'或终止的行"\r\n")。

线的定义是基本问题。由于使用上述终止符(大多数语言中的标准定义)终止行,因此对于任何跳过n行的算法,该算法都需要发现n行终止符。这意味着需要检查输入流byte/charbyte/char发现终止符,从而得出结论,虽然您只能跳过字符,但不能跳过。这里跳过意味着不需要检查数据(无论是在您的代码中还是在库代码中),例如。随机访问文件类型seek()或文件流skip(n)操作。

因此,您可能需要重新考虑您的数据结构,或者是否需要跳过行。

于 2012-05-16T16:20:20.040 回答