使用Scanner來取得使用者的輸入很方便,但是它以空白來區隔每一個輸入字符串,在某些時候并不適用,因為使用者可能輸入一個字符串,中間會包括空白字元,而您希望取得完整的字符串。
您可以使用BufferedReader類別,它是java.io包中所提供的一個類,所以使用這個類時必須先import java.io包;使用BufferedReader對象的readLine()
方法必須處理IOException異常(exception),異常處理機制是Java提供給程序設計人員捕捉程序中可能發生的錯誤所提供的機制,現階段您處理IOException的方法是在main()
方法后,加上 throws IOException,這在以后會再詳細討論為何要這么作。
BufferedReader在建構時接受一個Reader對象,在讀取標準輸入串流時,會使用InputStreamReader,它繼承了 Reader類,您使用以下的方法來為標準輸入串流建立緩沖區對象:
1
2
|
BufferedReader buf = new BufferedReader( new InputStreamReader(System.in)); |
"new"關鍵字表示您要建構一個對象為您所用,BufferedReader buf表示聲明一個類型為BufferedReader的對象變量,而new BufferedReader()
表示以BufferedReader類建構一個對象,newInputStreamReader(System.in)
表示接受一個System.in
對象來建構一個InputStreamReader對象。
您可以在學過對象導向觀念之后再來看這段,現階段若您比較難理解,就記得上面的緩沖區讀取對象建立方式,通常要使用BufferedReader來取得使用者的輸入都是這么寫的。
下面這個程序可以在文字模式下取得使用者輸入(可包括空白字節輸入),并重新顯示在主控臺中:
- GetInput.java
1
2
3
4
5
6
7
8
9
10
|
import java.io.*; public class GetInput { public static void main(String[]args) throws IOException { BufferedReader buf = newBufferedReader( newInputStreamReader(System.in)); System.out.print( "請輸入一列文字: " ); String text = buf.readLine(); System.out.println( "您輸入的文字: " + text); } } |
readLine()方法會傳回使用者在按下Enter鍵之前的所有字節輸入,不包括最后按下的 Enter返回字節,程序的執行范例如下所示:
請輸入一列文字: This is a test!
您輸入的文字: This is a test!
總結
以上就是本文關于Java中BufferedReader類獲取輸入輸入字符串實例的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
原文鏈接:http://blog.csdn.net/wolaiye320/article/details/51691819