1、Java的标准输入是指能够连接到计算机系统的键盘设备或其它字符输入终端。Java核心类System类成员属性in,负责从标准设备(键盘等)获取用户的输入,in的类型为InputStream,InputStream类主要用于从不同的输入源获取用户的输入数据,也包括键盘或其它字符输入终端。InputStream提供了三种方法从输入源读取数据,本节主要介绍不带输入参数的read方法,另外两种带输入参数的read方法请参考Java API。InputStream的read方法在Java API 文档中声明如下:int read()Reads the next byte of data from the input stream,The value byte is returned as an int in the range 0 to 255,If no byte is available because the end of the stream has been reached, the value -1 is returned.中文注解:从输入流中读取下一个字节的数据,返回整型类型的数据,其接受的数值范围为0-255。如果读取失败,返回-1。示例1:用read方法读取单个英文字符数据在D盘Java目录下,新建“ReadSample.java”文件。用记事本打开“ReadSample.java”文件,输入以下代码:
2、程序功能主要是演示read方法的使用,通过read从键盘读取一个字符并显示到屏幕上。代码第一行语句“import java.io.IOException;”用于导入Java类库的IOException,该类用于截获输入输出时发生的异常事件。程序调用read方法获取用户输入数据时,必须对输入输出发生的异常事件进行捕获,处理异常事件。Read方法一次只能读取一个字节的数据,数值范围为0—255,用println方法输出获取的数据,屏幕显示的是数值。如果要显示输入的字符,需要用printf方法格式化输出。编译“ReadSample.java”文件,在命令行窗口输入“javac ReadSample.java”并执行命令,编译通过后,在命令行窗口输入“java ReadSample”运行Java程序,命令行窗口显示如下信息:从运行结果可以看出,输入字符A,用println方法输出的字符A的ASCII码值,用printf格式化输出,屏幕显示的是字符A。
3、如果用户输入的是单个中文字符,程序将不能显示正确的中文字符,如下图所示:
4、因为read一次只能读取一个字节的数据,数值表示范围为0-255,而中文字符是用两个字节表示的。如果要读取中文字符或多个字符的话,就需要用到类Scanner了,Scanner类的具体用法下一节详细讲述。在实际应用中,InputStream一般用于文件的读取,很少用InputStream获取键盘的输入,大部分程序获取键盘输入时基本都采用Scanner来实现,Scanner简化了通过键盘输入字符串的过程,应用next() 与 nextLine() 方法就可以方便地获取输入的字符串。编写一个程序,用read方法输入一个字符,分别以字符、十进制、十六进制方式输出输入的字符。