是否可以编写一个程序来读取位于远程计算机上的大文件的最后N行(可通过网络访问)而无需将所有文件下载到本地计算机?实施应仅在本地计算机上,不可能在遥控器上进行更改。
如果有可能,我们怎样才能在Java中做到这一点?
答案 0 :(得分:0)
您应该使用未缓冲的io函数来打开和访问文件(open
/ read
/ lseek
或CreateFile
/ ReadFile
/ {{ 1}})。然后你SetFilePointer
该文件,并寻找靠近文件末尾的位置:open
。然后从文件中读取1024个字节,并扫描读取的数据以获得行终止序列。如果行数小于N + 1,则再次搜索,但偏移量为-2048,读取额外的1024字节。您迭代该过程,直到您在缓冲的数据中看到N + 1行终止序列。
就是这样。
答案 1 :(得分:0)
请参阅以下内容:Quickly read the last line of a text file?
它们还提供了有关如何读取文件的最后N行的示例。 通过使用seek命令,您可以跳过不想读取的字节。