繁体   English   中英

Java-从头开始从流中读取文件

[英]Java - read file from stream from the end

我想知道是否有一种方法可以从FTP服务器的末尾逐行读取文本文件。 我需要读取大文件,并且仅对最后几行感兴趣。

我可以使用以下问题的代码从硬盘上的文件中读取最后一行: 快速读取文本文件的最后一行? ,而且我也可以通过那里的代码逐行读取FTP服务器上的文件: Java。 从FTP读取文件,但是不要全部下载

但是在第一种情况下,函数tail使用变量类型File,而第二种代码使用变量类型InputStream。

当我寻找将流转换为文件的方法时,我发现只有真正的方法是将内容下载到tmp文件( 如何将InputStream转换为虚拟File )。 但我不想下载此文件,因为它可能非常大,如我所写。

有人知道另一种方法吗?

这是不可能的。 但是您可以逐行阅读输入流,并记住最后几行。 如果下一行到来,只需忘记第一读行即可。

无法使用FTP协议。 该协议仅支持从头开始获取文件。 (有一项可选功能,允许中断的传输在中途重新启动,但这取决于服务器发送的不透明“标记”代表可能的恢复点。我看不到如何使用它来跳到结尾任意文件。)

如果您正在寻找替代方案,请考虑将HTTP与HEAD请求和带有Range标头的GET请求结合使用。 (这取决于服务器识别这些请求...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM