Scanner是对System.in.read();的扩展,System.in.read();是每按一次键接收到一个一个字符,而Scanner则可以根据不同的条件接收不同的值。
如果单纯的接收数据还是Scanner比较方便,如果需要对接收的每个输入字符处理可以考虑使用System.in.read();
Scanner是通用字符处理类,可以将用户的输入转换成整数、字串等等。System.in本质是InputStream类,该类的目的是提供给用户未经过任何编码的原始输入字符码。
一般如果你的程序只需要简单功能如读取数字、字串之类,则使用Scanner会给你的处理程序带来方便,同时可以自动处理输入异常。但是,如果你需要处理一些特殊字符如回车、功能键(F1、F2,……),或者需要处理原始字符码时,则可以使用System.in.read()来获取。
用System.in.read()时,我们在键盘上按下的任何一个键都会被当做是输入值,而scanner不是