2013-08-26 110 views
0

我是初學Java程序員,我用這個Java Tutorial如何通過System.in獲取輸入?

I/O from the Command Line頁面中,它使用InputStreamReader cin = new InputStreamReader(System.in);從命令行獲取用戶輸入。但是當我嘗試使用它時,沒有任何反應。我有一個非常簡單的程序,只是爲了測試它是否有效,但不是。

import java.io.*; 

public class TestInput { 
    public static void main(String args[]) { 
     BufferedReader cin = new BufferedReader(new InputStreamReader(System.in)); 
     if(cin.equals("jon")) { 
      System.out.println("hello, jon."); 
     } else { 
      System.out.println("hello, guest."); 
     } 
    } 
} 

它只是說,「你好,客人」和退出,不讓我輸入任何東西。

我假設這應該類似於System.console,但如果這不是它應該是這樣的,請告訴我。

我的代碼有什麼問題?

感謝您的任何答案。

編輯

從我得到的編輯,我想我必須使用cin.readline()實際讀取輸入。

我讓我的程序工作。謝謝!

回答

2
try{ 
    BufferedReader cin = new BufferedReader(new InputStreamReader(System.in)); 
    String name= cin.readLine(); 

    if(name!=null && name.equals("jon")) { 
     System.out.println("hello, jon."); 
    } else { 
     System.out.println("hello, guest."); 
    } 
}catch(IOException e){ 

} 
+0

爲什麼你使用'的BufferedReader( )'? –

+0

Java.io.BufferedReader類從字符輸入流中讀取文本,緩衝字符以提供字符,數組和行的高效讀取。 – Prabhakaran

2

你要讀取輸入:

if(cin.readLine().equals("jon")) { // or "jon".equals(...) to handle null 

(見BufferedReader.readLine()

你也會有一個try-catch來處理潛在IOException

隨着cin.equals("jon"),你正在測試,如果BufferedReader對象cin本身等於字符串"jon",這顯然是錯誤的。

+0

+1鏈接至文檔 – Cruncher

0
if(cin.readLine().equals("jon")) 

此外,您還需要處理IOException異常