是否可以从远程服务器连续获取文件内容



我知道在本地可以逐行获取文件内容。就像

Scanner s = new Scanner(new File("D:\Users\qding\Desktop\spy.log"));
    while (s.hasNextLine()) {
        String line = s.nextLine();
        System.out.println("[Method Server] " + line);
}

是否可以从远程(Windows/Linux)获取文件内容?

此外,在远程设备上,该文件是日志文件,并且始终更新。 所以第二个问题是是否可以连续提交内容(使用多个线程?

A1。是的,可以从远程系统获取文件内容,前提是可以通过任何协议访问文件内容。

回答 2.在 unix 系统上,要读取不断变化的文件的内容,我们有tail -f ...命令。请参考文件监控。要通过网络读取此类文件,您肯定需要线程的帮助来等待并读取更新。Apache commons有自定义tail实现,可能会对你有所帮助。

您可以参考SO上的类似帖子,以获取详细的建议和讨论。

更新
A2:对于Windows,有一个用于Win32的第三方GUI工具Tail,但我从未处理过它。
您还可以在Windows上参考更多建议...相当于"尾巴-f"?

好吧,让我试着回答这个问题,

  1. 我假设您已使用套接字与服务器通信。

  2. 使用socket.shutdownOutput()(socket.shutdownOutput()中的"socket"标识服务器地址和端口号)on the client side,因为您不需要写入某些内容,但需要继续从服务器读取。

  3. 如果还要处理服务器部分,请确保对服务器的每个请求都在其自己的线程上运行。

  4. 现在在客户端使用此链接从服务器上的"文件"中读取

    http://www.java-samples.com/showtutorial.php?tutorialid=215

最新更新