我知道在本地可以逐行获取文件内容。就像
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"?。
好吧,让我试着回答这个问题,
-
我假设您已使用套接字与服务器通信。
-
使用
socket.shutdownOutput()
(socket.shutdownOutput()中的"socket"标识服务器地址和端口号)on the client side
,因为您不需要写入某些内容,但需要继续从服务器读取。 -
如果还要处理服务器部分,请确保对服务器的每个请求都在其自己的线程上运行。
-
现在在客户端使用此链接从服务器上的"文件"中读取
http://www.java-samples.com/showtutorial.php?tutorialid=215