1. 三种方式实现键盘录入
System.in 标准输入流。是从键盘获取数据的
键盘录入数据三种方式:
A:main方法的args接收参数。 java HelloWorld hello world java B:Scanner(JDK5以后的) Scanner sc = new Scanner(System.in); String s = sc.nextLine(); int x = sc.nextInt() C:通过字符缓冲流包装标准输入流实现 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));2. 代码实现:
1 package cn.itcast_04; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 7 /* 8 * System.in 标准输入流。是从键盘获取数据的 9 * 10 * 键盘录入数据:11 * A:main方法的args接收参数。12 * java HelloWorld hello world java13 * B:Scanner(JDK5以后的)14 * Scanner sc = new Scanner(System.in);15 * String s = sc.nextLine();16 * int x = sc.nextInt()17 * C:通过字符缓冲流包装标准输入流实现18 * BufferedReader br = new BufferedReader(new InputStreamReader(System.in));19 */20 public class SystemInDemo {21 public static void main(String[] args) throws IOException {22 // //获取标准输入流23 // InputStream is = System.in;24 // //我要一次获取一行行不行呢?25 // //行。26 // //怎么实现呢?27 // //要想实现,首先你得知道一次读取一行数据的方法是哪个呢?28 // //readLine()29 // //而这个方法在哪个类中呢?30 // //BufferedReader31 // //所以,你这次应该创建BufferedReader的对象,但是底层还是的使用标准输入流32 // // BufferedReader br = new BufferedReader(is);33 // //按照我们的推想,现在应该可以了,但是却报错了34 // //原因是:字符缓冲流只能针对字符流操作,而你现在是字节流,所以不能是用?35 // //那么,我还就想使用了,请大家给我一个解决方案?36 // //把字节流转换为字符流,然后在通过字符缓冲流操作37 // InputStreamReader isr = new InputStreamReader(is);38 // BufferedReader br= new BufferedReader(isr);39 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));40 41 System.out.println("请输入一个字符串:");42 String line = br.readLine();43 System.out.println("你输入的字符串是:" + line);44 45 System.out.println("请输入一个整数:");46 // int i = Integer.parseInt(br.readLine());47 line = br.readLine();48 int i = Integer.parseInt(line);49 System.out.println("你输入的整数是:" + i);50 }51 }
运行效果,如下: