2012-06-07 41 views
-1

我想創建一個簡單的Java程序,它實現了KeyListener我如何製作一個實現KeyListener的控制檯應用程序?

我想繼續運行我的程序,直到我放棄它或某種條件。 我想要做的是在我運行該程序後,無論按下哪個鍵,它都將存儲在out.txt文件中。

public class StoreInFile implements KeyListener{ 
    public static void main(String[] args) { 
    while(true){ 
    // **What should i do here such that it will call the keypressed event**. 
    } 
    } 
    @Override 
    public void keyPressed(KeyEvent e) { 
     try{ 
       FileWriter fstream = new FileWriter("d:\\out.txt",true); 
       BufferedWriter out = new BufferedWriter(fstream); 
       out.write(e.getKeyChar()); 
       out.close(); 
       }catch (Exception ex){ 
       System.err.println("Error: " + ex.getMessage()); 
       } 
    } 

} 

是否可以在控制檯應用程序中實現? 基本上我想創建一個KeyLoggerKeyCatcher。 我怎麼能做到這一點? 在此先感謝。

回答

1

你可以嘗試一個開源框架,jLinejLine

但是,這不是100%java.Some機實現也存在。

+0

酷庫。感謝您的鏈接。 – AlexR

2

對於基於線路輸入,即「用戶類型的文本,用戶按回車,你的程序接收用戶鍵入的內容」,在Scanner類應該做的很好。

對於單字符輸入,如「用戶按下x鍵,您的程序會收到通知。」您必須查看圖書館,如CHARVAJava Curses

+0

如果我使用掃描儀類讀取輸入,將其存儲只有按下按鍵,而我的控制檯窗口是active.What如果打開瀏覽器,輸入網址,將其存儲在URL密鑰也在文件中? – vikiiii

+0

不可以。聽起來就像您在*鍵記錄器*或*鍵捕捉器*之後。這是一個針對Linux的項目:http://sourceforge.net/projects/jxgrabkey,這裏是一個針對windows的項目:http://melloware.com/products/jintellitype/index.html – aioobe

+0

+1 Hey.thanks理解我的問題。我想在windows上。你能指導我一點嗎? JINTELLITYPE是JAVA的API嗎? – vikiiii

相關問題