/*
* 【需求】
* 读取一个键盘录入的数据,并打印在控制台上。
*
* 键盘本身就是一个标准的输入设备,对于java而言,对于这种输入设备都有对应的对象。
*
* 所以打开java.lang包,找到【字段摘要】中的:public static final InputStream in,其解释是:
* “标准”输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。
*/
package demo;
import java.io.IOException;
import java.io.InputStream;
public class ReadKey {
public static void main(String[] args) throws IOException {
readKey();
}
public static void readKey() throws IOException {
InputStream in =System.in;//该方法默认是对应键盘输入,那么直接用左边InputStream类的in即可,不管右边是啥
//以前是在代码中指定内容或文件,现在是读取键盘录入的内容,其实都是读取操作,换汤不换药
int ch = in.read();//点击开始运行,程序会一直停留在这行代码,等待从键盘输入,如果不输入,会一直等待(即【阻塞式方法】)
//之前是有数据,那么read方法读完结束,现在这个程序一直在等待键盘录入
System.out.println(ch);
int ch1 = in.read();
System.out.println(ch1);
int ch2 = in.read();
System.out.println(ch2);
//在控制台(即Console窗口)中输入字符a,按回车,指示灯灭,程序输出97,13,10,其中97对应a的ASC码,13和10分别对应
//换行('\r')和回车('\n')的ASC码,所以其实这里是读取了3个字符
/*
* 【注意】最好不要关闭流,即不要写代码:in.close(),因为一旦关闭该流,那么你在close下面继续新建第二个流是会抛出异常的,
* 即如下代码是错误的:
* in.close();
* InputStream in2 = System.in;
* int ch3 = in2.read();
* sop(ch3);
* 【记住】默认的输入输出设备千万不要关闭流,一旦关闭,再也开启不了,新建不了流,除非重启系统
*/
}
}
22-IO流-23-IO流(演示键盘录入)
最新推荐文章于 2019-11-24 15:44:47 发布