2012-06-16 58 views
1

我在本地知道可以逐行獲取文件內容。 就像是否可以從遠程服務器連續獲取文件內容

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)的獲取文件的內容嗎?

此外,在遠程,該文件是一個日誌文件,並且它始終更新。所以第二個問題是如果有可能連續提交內容(多線程?)?

回答

1

A1上使用此下面鏈接來閱讀從 「文件」。是的,只要可以通過任何協議訪問,就可以從遠程系統獲取文件內容。

A2。在unix系統上,要讀取持續變化的文件的內容,我們有tail -f ...命令。請參閱File Monitoring。並且通過網絡讀取這些文件,您肯定需要線程的幫助來等待並閱讀更新。 Apache公用程序有自定義tail實現可能會幫助你。

您可以參考SO上的a similar posting獲取詳細的建議和討論。

更新
A2:對於Windows,有一個第三方GUI工具Tail for Win32,但從來沒有我的工作就可以了。
您還可以參考Windows ... equivalent of 「tail -f」?的更多建議。

+0

Ravinder,非常感謝,它很有用,尤其是Apache的tail的實現。嗯...,有沒有任何關於從遠程窗口連續獲取文件內容的參考? –

+0

我的意思是在Linux上我們有_tail -f_,但是在windows上,我們有自己實現這個功能嗎? –

+0

@ShrekDing我已經更新了我的答案,並提供了其他對「tail -f」等效版本的引用。 –

0

那麼,讓我試着回答這個問題,

  1. 我假設你用插座,與服務器進行通信。因爲你不需要編寫一些東西,但需要繼續讀取服務器的內容,因此使用socket.shutdownOutput()(socket.shutdownOutput()中的「socket」標識服務器地址和端口號)on the client side

  2. 如果您還在處理Server部分,請確保對服務器的每個請求都在其自己的線程上運行。

  3. 現在在客戶端服務器

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

相關問題