java 键盘输入的几种方法比较

来源:互联网 发布:蒙文软件下载 编辑:程序博客网 时间:2024/05/17 23:33

java里面处理输入输出当然是IO流,大多是通过定义输入输出流对象。常用的类有BufferedReader,Scanner。

1、功能最强大的是利用 Scanner 实现从键盘读入数据(jdk1.5以后)

      Scanner scan = new Scanner(System.in);

      new是创建一个对象,程序中new的意思是创建了一个Scanner类的对象scan.在创建Scanner类的对象时,需要用System.in 作为它的参数,也可以看作是System.in取得用户输入的内容后,交给Scanner来作一些处理.

      Scanner类中提供了多个方法:
      next():取得一个字符串;
      nextInt():将取得的字符串转换成int类型的整数;
      nextFloat():将取得的字符串转换成float型;
      nextBoolean():将取得的字符串转换成boolean型;

      但是里面有一些注意点一般在IO知识点前是暂时回避的。

      其中:next 方法遇见第一个有效字符(非空格、换行字符)时,开始执行扫描,而当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描。(这里面有一个方法useDelimiter可以自己设置结束符。)

       nextLine此扫描器执行当前行,并返回跳过的输入信息。 此方法返回当前行的其余部分,不包括结尾处的行分隔符。当前位置移至下一行的行首。

        教学中发现有些孩子在学习中就是想输入char型的东西来判断。而Scanner类的方法中确只提供String类型,其实这是十分科学和有用途的。其实我们在实际工作中最为常用的就是字符串,所以人家java才提供这种类型的方法。
        用Scanner获得用户的输入非常的强大,但是Scanner取得输入的依据是空格符,包括空格键,Tab键和Enter键.当按下这其中的任一键时,Scanner就会返回下一个输入.

        当你输入的内容中间包括空格时,显然,使用Scanner就不能完整的获得你输入的字符串.这时候我们可以考虑使用BufferedReader类取得输入.其实在jdk 1.4以前的版本中,没有提供Scanner方法,我们获得输入时也是使用BufferReader的.

2、利用 BufferedReader实现从键盘读入


3、System.in提供的 read方法每次只能读取一个字节的数据,而我们平时所应用的通常是读取一个字符串或者是一个数字,所以read方法所以提供的功能,对我们来说并没有太大的用处.
        System.in.read();----注意这是字节而不是字符(所以中文无法出来,这就是偶从来不用它的原因,如果你非要用一般咱也不拦你,自己看着办吧。)