控制台输入小节

BufferedReader

最基础的方法,从System.in输入流中获取数据

1
2
3
4
5
6
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println(br.readLine());
} catch (IOException e) {
e.printStackTrace();
}

Scanner

1
2
Scanner sc = new Scanner(System.in);
System.out.println(sc.nextLine());

Console

java6新增

1
2
3
4
Console console = System.console();
if(console != null){
System.out.println(console.readLine());
}

说明

  1. Console主要是为了方便程序与用户交互,但是有一个限制就是需要使用系统自带的控制台来运行程序,如果在IDE中使用的话,就有很大的可能获取不到Console。

  2. Console的另一个特点就是可以隐藏密码:

1
2
3
4
Console console = System.console();
if(console != null){
System.out.println(console.readPassword());
}
这样就看不到用户输入的密码了,但是没有办法将用户的输入显示成“*”或者别的字符
  1. Scanner方便将用户的输入转换成对应的java类型,另外,Scanner的输入源不限于System.in,还可以是其他的输入源。