我需要做的是基本上读取一个不断增长的文件,但是在每个时间间隔中我只想阅读附加到文件中的 new 。
我发现有很多方法可以使用我的文件系统上的文件来执行此操作,但所有这些都要求我在使用RandomAccessFile
- 对象执行 magic 之前下载文件
有没有办法使用http://myurl.com/123.txt等在线文件执行此操作?那么我只是流式传输最近2分钟内添加的数据?
非常感谢! 噪音
答案 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
的内容。