2

httpClientを使用してインターネットから開いたhtmlファイルからデータを読み込もうとしています。readLine()読み取りのためにループ内の関数を使用しています。

読みたい行は500行目から。ファイルに配置するより速い方法はありますか?

問題は、不要なデータをすべて読み込むのに時間がかかりすぎることです (すべての読み込みが完了するまでに約 10 秒かかります)。

4

2 に答える 2

3

InputStream から、次を使用していくつかの文字をスキップできますskip(long n)

于 2012-05-16T15:54:46.403 に答える
1

500行目に到達するには、499行の終了文字を交差させる必要があります(、、またはで終了する行を取得するgetline()ため)。'\n''\r'"\r\n"

線の定義が基本的な問題です。上記のターミネータ(ほとんどの言語の標準定義)を使用して行が終了するため、行をスキップするアルゴリズムの場合、アルゴリズムは行ターミネータnを検出する必要があります。これは、ターミネータを見つけるために入力ストリームをn調べる必要があることを意味します。これにより、文字をスキップすることはできますが、をスキップすることはできないという結論に至ります。ここでスキップするということは、たとえば、データを(コードまたはライブラリコードのいずれかで)調べる必要がないことを意味します。ランダムアクセスファイルタイプまたはファイルストリーム操作。byte/charbyte/charseek()skip(n)

したがって、データ構造を再考したり、行をスキップする必要がある場合があります。

于 2012-05-16T16:20:20.040 に答える