使用Java通过HTTP连续读取文件

时间:2013-10-20 10:51:30

标签: java http inputstream

我需要做的是基本上读取一个不断增长的文件,但是在每个时间间隔中我只想阅读附加到文件中的 new

我发现有很多方法可以使用我的文件系统上的文件来执行此操作,但所有这些都要求我在使用RandomAccessFile - 对象执行 magic 之前下载文件

有没有办法使用http://myurl.com/123.txt等在线文件执行此操作?那么我只是流式传输最近2分钟内添加的数据?

非常感谢! 噪音

1 个答案:

答案 0 :(得分:1)

如果服务器支持它,您可以使用Range标头从给定的偏移量请求字节。反复执行此操作以轮询文件以获取新字节。

伪代码:

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

有关服务器可能响应的详细信息,请参阅this question。如果服务器可用或没有更多字节可用。

要获取“过去2分钟内添加的数据”,您必须跟踪两分钟前offset的内容。