我需要做的基本上是读取一个不断增长的文件,但在每个间隔中我只想读取附加到文件的新文件。
我找到了很多方法来处理我的文件系统上的文件,但所有这些都要求我先下载文件,然后才能使用-Object来做魔法。RandomAccessFile
有没有办法使用像http://myurl.com/123.txt这样的在线文件来做到这一点?所以我只是流式传输最后 2 分钟添加的数据?
非常感谢!噪音
我需要做的基本上是读取一个不断增长的文件,但在每个间隔中我只想读取附加到文件的新文件。
我找到了很多方法来处理我的文件系统上的文件,但所有这些都要求我先下载文件,然后才能使用-Object来做魔法。RandomAccessFile
有没有办法使用像http://myurl.com/123.txt这样的在线文件来做到这一点?所以我只是流式传输最后 2 分钟添加的数据?
非常感谢!噪音
如果服务器支持它,您可以使用Range
标头从给定偏移量请求字节。重复执行此操作以轮询文件以获取新字节。
伪代码:
long offset = 0;
while (true) {
request.setHeader("Range: bytes=" + offset + "-");
request.send();
request.readResponse();
offset += theNumberOfBytesRead;
Thread.sleep(someRespectfulAmountOfTime);
}
有关如果服务器有或没有更多可用字节,服务器可能如何响应的详细信息,请参阅此问题。
要获取“最近 2 分钟内添加的数据”,您必须跟踪offset
两分钟前的内容。