BufferedReader提供了一種字符流的緩衝區數據讀取,利用此類進行數據讀取時會將讀取到的數據暫時保存在緩衝區之中,而後利用其內部提供的方法將讀取到的內容一次性取出。
BufferedReader定義的構造方法,只能接收字符輸入流的實例,所以必須使用字符輸入轉換流InputStreamReader類將字節輸入流System.in變爲字符流。
範例:實現鍵盤數據輸入
package com.lxh.sixteenchapter;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class JavaIODemo427 {
public static void main(String[] args) {
// System.in爲InputStream類實例,利用InputStreamReader轉爲Reader實例
/* BufferedReader構造接收一個Reader對象
* Reader xx=new InputStreamReader();轉換流
* InputStream yy=new FileInputStream()<==>System.in
*/
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
System.out.println("請輸入信息:");
try {
String msg=input.readLine();//接收輸入信息
if(msg.matches("\\d{1,3}")) { //是否由數字組成
int age=Integer.parseInt(msg); //字符串轉爲int
System.out.println("年齡:"+age);
}else {
System.out.println("輸入的不是數字,請重新輸入");
}
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
執行結果
請輸入信息:
18
年齡:18