簡體   English   中英

在不完全下載的情況下部分讀取遠程文件

[英]Reading a Remote File Partially Without Downloading Completely

是否可以編寫一個程序來讀取位於遠程計算機(可通過網絡訪問)上的大文件的最后N行,而無需將所有文件下載到本地計算機? 該實現應僅在本地計算機上,不可能在遠程上進行更改。

如果可能的話,我們如何用Java做到這一點?

您應該使用未緩沖的io函數打開和訪問文件( open / read / lseekCreateFile / ReadFile / SetFilePointer )。 然后open文件,並尋找靠近文件末尾的位置: lseek(fd,SEEK_END,-1024) 然后,您從文件中讀取1024個字節,並掃描讀取的數據以查找行終止順序。 如果行數少於N + 1,則您將再次搜索,但偏移量為-2048,並讀取額外的1024個字節。 您迭代該過程,直到在緩沖的數據中看到N + 1行終止序列為止。

而已。

請參閱以下內容: 快速閱讀文本文件的最后一行?

他們還提供了有關如何讀取文件的最后N行的示例。 通過使用seek命令,您可以跳過不想讀取的字節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM