Java控制台输入的三种实现方法:使用标准输入对象System.in,使用Scanner和使用字符流从控制台输入.下面将为大家一一介绍:
一.使用标准输入对象
众所周知,System.in是控制台程序的典型的接受键盘输入的流,通过调用System.in.read()我们可以从键盘输入字符,read()方法是等待用户按键,然后返回字符的Unicode码,注意返回的是一个整数,要是想输出对应的字符,必须将其强制转换成char类型,代码如下:
package FirstDemo;
import java.io.IOException;
public class testone {
public static void main(String[] args) {
try {
int a=System.in.read();
System.out.println((char)a);
}
catch(IOException io) {
System.out.println("Error: "+io);
}
}
}
此外,在使用System.in.read()时有一些注意的地方:
- 必须抛出IOException异常;
- 使用System.in.read()一次只能输入一个字符;
- 由于System.in是行缓存,当按下Enter键时,一个回出换行序列会进入输入流,因此当连续使用两个System.in.read()时需要注意后一个会直接读入回车;
二.使用Scanner
java.util.Scanner是Java5的新特性,通过Scanner类我们可以获取用户输入,下面直接用代码来展示它的使用方法:
package FirstDemo;
import java.util.Scanner;
public class testone {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
//next()方法读到空格则停止
//String accept=in.next();
//System.out.println(accept);
//nextLine读到回车停止
String accept_1=in.nextLine();
System.out.println(accept_1);
}
}
三.使用字符流从控制台输入
Java字符流从控制台输入比较方便,要实现字符流控制台输入我们可以采用如下方法:
a.通过如下代码获得通过System.in与控制台相连的字符流:
BufferedReader br=new BufferedReader(new InputStreamReader(System.in))
b.使用BufferReader定义的read()方法或readLine()方法即可实现控制台输入;
示例代码如下:
package FirstDemo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class testone {
public static void main(String[] args) {
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
try {
//int c=br.read();
//System.out.println((char)c);
String accept=br.readLine();
System.out.println(accept);
}catch(IOException io) {
System.out.println("Error: "+ io);
}
}
}
需要注意的是使用read()或readLine()方法时需要抛出IOException!!!