0

私がする必要があるのは、基本的に継続的に成長しているファイルを読み取ることですが、すべての間隔で、ファイルに追加された新しいファイルを読み取りたいだけです。

ファイルシステム上のファイルでこれを行う方法はたくさんありますが、これらの方法ではすべて、 -Objectを使用して魔法を実行する前にファイルをダウンロードする必要があります。RandomAccessFile

http://myurl.com/123.txtのようなオンラインファイルでこれを行う方法はありますか? 過去2分間に追加されたデータをストリーミングするだけですか?

どうもありがとう!ノイズ

4

1 に答える 1

1

サーバーがサポートしている場合は、Rangeヘッダーを使用して、特定のオフセットからのバイトを要求できます。これを繰り返し実行して、ファイルをポーリングして新しいバイトを探します。

擬似コード:

long offset = 0;
while (true) {
    request.setHeader("Range: bytes=" + offset + "-");
    request.send();
    request.readResponse();
    offset += theNumberOfBytesRead;
    Thread.sleep(someRespectfulAmountOfTime);
}

使用可能なバイト数がある場合とない場合のサーバーの応答方法の詳細については、この質問を参照してください。

「過去 2 分間に追加されたデータ」を取得するには、2 分間前のデータを追跡する必要がありますoffset

于 2013-10-20T11:10:02.790 に答える