在JDK 6中新增了java.io.Console类别,可以让您取得字符为基础的主控台装置,例如,您可以藉由System新增的console()方法取得标准输入输出装置的Console对象,并利用它来执行一些简单的主控台文字输入输出,例如:
import java.io.Console; public class ConsoleDemo { public static void main(String[] args) { System.out.print("请输入名称:"); Console console = System.console(); String name = console.readLine(); System.out.println("您输入的名称…" + name); } }
执行结果:
请输入名称:Justin 您输入的名称…Justin
对于主控台下的密码输入,Console类别还提供有一个简单readPassword()方法,在读取使用者于主控台下输入的密码时,不会显示使用者输入的字符(这在过去要用其它麻烦的方式来达到),例如:
import java.io.Console; public class ConsoleDemo { public static void main(String[] args) { System.out.print("请输入名称:"); Console console = System.console(); String name = console.readLine(); char[] password = console.readPassword("请输入密码:"); System.out.println("您输入的名称…" + name); System.out.println("您输入的密码…" + new String(password)); } }
执行结果:
请输入名称:Justin 请输入密码: 您输入的名称…Justin 您输入的密码…123456
Console类别也提供有reader()与writer()方法,可以传回 Reader、Writer 对象,以便进行其它的IO处理,例如结合Scanner一同使用:
Scanner scanner = new Scanner(System.console().reader());