我需要做的是基本上讀取一個不斷增長的文件,但在每個時間間隔中,我只想讀取附加到文件的新。通過使用Java的HTTP連續讀取文件
我發現了很多辦法與我的文件系統文件要做到這一點,但所有這些都需要我下載的文件之前,我可以使用RandomAccessFile
-object做魔術。
有沒有辦法做到這一點,像http://myurl.com/123.txt在線文件?所以我只是在最近2分鐘內添加數據?
非常感謝! noise
我需要做的是基本上讀取一個不斷增長的文件,但在每個時間間隔中,我只想讀取附加到文件的新。通過使用Java的HTTP連續讀取文件
我發現了很多辦法與我的文件系統文件要做到這一點,但所有這些都需要我下載的文件之前,我可以使用RandomAccessFile
-object做魔術。
有沒有辦法做到這一點,像http://myurl.com/123.txt在線文件?所以我只是在最近2分鐘內添加數據?
非常感謝! noise
如果服務器支持它,則可以使用Range
標頭從給定的偏移量請求字節。重複執行此操作以輪詢文件以查找新字節。
僞代碼:
long offset = 0;
while (true) {
request.setHeader("Range: bytes=" + offset + "-");
request.send();
request.readResponse();
offset += theNumberOfBytesRead;
Thread.sleep(someRespectfulAmountOfTime);
}
見this question有關服務器可能會如何,如果它發生或不具有多個字節可用響應的細節。
要獲得「最近2分鐘內添加的數據」,您必須跟蹤兩分鐘前的offset
。
非常感謝。這工作完美 – newnoise
此文件是否在您擁有的服務器中託管? – Cratylus
沒有。我對服務器或文件沒有影響。我只知道鏈接。 – newnoise