部分读取远程文件而不完全下载

时间:2012-09-26 21:44:07

标签: java file-io remote-access

是否可以编写一个程序来读取位于远程计算机上的大文件的最后N行(可通过网络访问)而无需将所有文件下载到本地计算机?实施应仅在本地计算机上,不可能在遥控器上进行更改。

如果有可能,我们怎样才能在Java中做到这一点?

2 个答案:

答案 0 :(得分:0)

您应该使用未缓冲的io函数来打开和访问文件(open / read / lseekCreateFile / ReadFile / {{ 1}})。然后你SetFilePointer该文件,并寻找靠近文件末尾的位置:open。然后从文件中读取1024个字节,并扫描读取的数据以获得行终止序列。如果行数小于N + 1,则再次搜索,但偏移量为-2048,读取额外的1024字节。您迭代该过程,直到您在缓冲的数据中看到N + 1行终止序列。

就是这样。

答案 1 :(得分:0)

请参阅以下内容:Quickly read the last line of a text file?

它们还提供了有关如何读取文件的最后N行的示例。 通过使用seek命令,您可以跳过不想读取的字节。

相关问题