2011-09-01 39 views
1

我想用一種readLine()(或類似的)的BufferedReader,它可以爲按下的每個按鍵返回一個回顯。如何在Java中使用echo讀取線程?

這是一個遠程終端。其他問問的方式是如何在java中實現控制檯。

這是想到的,但太醜了。有沒有已知的庫實現這樣的東西?

while(condition) { 

    nByteRead = in.read(buffer); 

    if (nByteRead != -1) { 

     // ECHO 
     out.write(buffer, 0, bytes_read);      

     // read bytes till NEW_LINE...        
     // etc...!        
    }       
}      

當然,我可以封裝在某個線程這種行爲與該庫下去,我只是不知道是否有一些輪已經發明。

感謝您的任何提示!

回答

1

大多數終端,包括Ubuntu和Windows中的默認終端(我相信)都不會將字符傳遞給JVM,直到用戶返回。 (即,被緩衝在系統低級別的全線基礎上。)

如果你需要從終端每次讀取一個字符,你必須去與更低層級的系統圖書館。

相關問題:

(disclamer,我不能完全肯定我理解正確你的問題。)

+0

我想你瞭解它,但我不希望從終端讀取,我想從一個套接字讀取,發送「回聲」用戶,讓他看到,無論打字到達服務器。 –

+0

是用java編寫的客戶端嗎? – aioobe

+0

不,客戶端不是必然的Java –