标准的输入流
public static final InputStream in:是System类中的静态成员变量,是标准输入流,通常该流对应于键盘输入或由主机环境或用户指定的另一个输入源
重新指定标准输入流的输入源(重定向)
System.setIn(InputStream is):设置标准输入流输入位置为参数输入流连接的位置
重新指定也称为重定向,也就是通过System类中的setIn()方法对默认输入位置进行修改
标准输入流的基本操作原理
1 首先以字节流读取输入的数据
InputStream is=System.in;//System.in是InputStream类型的
int b;
while((b=is.read())!=-1) {
System.out.print((char)b);
}
/*
键盘输入:abc
输出:abc
*/
2 若想输入中文,需要把字节流转换为字符流
InputStream is=System.in;
//使用转换流把字节流转换成字符流
InputStreamReader isr=new InputStreamReader(is);
int r;
while((r=isr.read())!=-1) {
System.out.print((char)r);
}
/*
键盘输入:你好abc
输出:你好abc
*/
3 把字节流转换为字符流并实现读取录入键盘的一行数据
InputStream is=System.in;
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
System.out.println("请输入一个字符串:");
String line=br.readLine();
System.out.println("您输入的字符串是:"+line);
/*
请输入一个字符串:
你好,我是中国人
您输入的字符串是:你好,我是中国人
*/
总结:自己手动实现键盘录入数据太麻烦了,所以Java就提供了一个类实现键盘录入,也就是Scanner sc=new Scanner(System.in);