键盘录入数据的3中实现方式
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
*System.in 标准输入流。是从键盘获取数据的
*
* 键盘录入数据:
* A:main方法的args接收参数。
* java HelloWorld hello worldjava
* B:Scanner(JDK5以后的)
* Scanner sc = newScanner(System.in);
* String s = sc.nextLine();
* int x = sc.nextInt()
* C:通过字符缓冲流包装标准输入流实现
* BufferedReader br = newBufferedReader(new InputStreamReader(System.in));
*/
public class SystemInDemo {
publicstatic void main(String[] args) throws IOException {
////获取标准输入流
//InputStream is = System.in;
////我要一次获取一行行不行呢?
////行。
////怎么实现呢?
////要想实现,首先你得知道一次读取一行数据的方法是哪个呢?
////readLine()
////而这个方法在哪个类中呢?
////BufferedReader
////所以,你这次应该创建BufferedReader的对象,但是底层还是的使用标准输入流
//// BufferedReader br = new BufferedReader(is);
////按照我们的推想,现在应该可以了,但是却报错了
////原因是:字符缓冲流只能针对字符流操作,而你现在是字节流,所以不能是用?
////那么,我还就想使用了,请大家给我一个解决方案?
////把字节流转换为字符流,然后在通过字符缓冲流操作
//InputStreamReader isr = new InputStreamReader(is);
//BufferedReader br= new BufferedReader(isr);
BufferedReaderbr = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一个字符串:");
Stringline = br.readLine();
System.out.println("你输入的字符串是:"+ line);
System.out.println("请输入一个整数:");
//int i = Integer.parseInt(br.readLine());
line= br.readLine();
inti = Integer.parseInt(line);
System.out.println("你输入的整数是:"+ i);
}
}
运行结果:
请输入一个字符串:
helloworld
你输入的字符串是:helloworld
请输入一个整数:
100
你输入的整数是:100