0

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

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

4

2 回答 2

0

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

而已。

于 2012-09-26T22:30:49.597 回答
0

请参阅以下内容:快速读取文本文件的最后一行?

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

于 2013-04-08T19:37:03.047 回答