1、JDK 1.4 及以下版本读取的方法
JDK 1.4 及以下的版本中要想从控制台中输入数据只有一种办法,即使用System.in获得系统的输入流,再桥接至字符流从字符流中读入数据。只能读取字符串,若需要读取其他类型的数据需要手工进行转换。代码如下:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
try
{
str = br.readLine();
System.out.println(str);
}
catch (IOException e)
{
e.printStackTrace();
}
2、JDK 5.0 读取的方法
从 JDK 5.0 开始,基本类库中增加了java.util.Scanner类,根据它的 API 文档说明,这个类是采用正则表达式进行基本类型和字符串分析的文本扫描器。使用它的Scanner(InputStream source)构造方法,可以传入系统的输入流System.in而从控制台中读取数据。canner不仅可以从控制台中读取字符串,还可以读取除char之外的其他七种基本类型和两个大数字类型,并不需要显式地进行手工转换。代码如下:
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
System.out.println(str);
3、JDK 6.0 读取的方法
从 JDK 6.0 开始,基本类库中增加了java.io.Console类,用于获得与当前 Java 虚拟机关联的基于字符的控制台设备。在纯字符的控制台界面下,可以更加方便地读取数据。代码如下:
Console console = System.console();
if (console == null)
{
throw new IllegalStateException("不能使用控制台");
}
String str = console.readLine("console");
System.out.println(str);