一、使用标准输入串System.in
<pre class="java" name="code"> // System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字
// System.in.read()返回一个整数
char read= '0'; // 必须初始化
System.out.println("输入数据:");
try {
// read = System.in.read();
read = (char) System.in.read();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("输入数据:" + read);
二、使用Scanner取得一个字符串或一组数字
<pre class="java" name="code"> /*
* 在新增一个Scanner对象时需要一个System.in对象,因为实际上还是System.in在取得用户输入。Scanner的next()
* 方法用以取得用户输入的字符串
* ;nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点型;nextBoolean()转换成布尔型。
*/
System.out.println("输入数据:");
Scanner scanner = new Scanner(System.in);
String read = scanner.nextLine();
scanner.close();
System.out.println("输入数据:" + read);
三、使用BufferedReader取得含空格的输入
<pre class="java" name="code"> // Scanner取得的输入以space, tab, enter 键为结束符,
// 要想取得包含space在内的输入,可以用java.io.BufferedReader类来实现
// 使用BufferedReader的readLine( )方法
// 必须要处理java.io.IOException异常
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// java.io.InputStreamReader继承了Reader类
String read = null;
System.out.print("输入数据:");
try {
read = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("输入数据:" + read);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.in 接受从控制台输入的字节new InputStreamReader(System.in);
构造一个InputStreamReader对象这个对象是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。
new BufferedReader(new InputStreamReader(System.in));构造一个字符流的缓存,里面存放在控制台输入的字节转换后成的字符。
str=buf.readLine();从这个缓存中读取一行的内容
BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); //整个这句话拆开来写为:
InputStream in = System.in ;
InputStreamReader isr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr);