ITEEDU

Java Gossip: 使用 Console 对象 - JDK 6

在JDK 6中新增了java.io.Console类别,可以让您取得字符为基础的主控台装置,例如,您可以藉由System新增的console()方法取得标准输入输出装置的Console对象,并利用它来执行一些简单的主控台文字输入输出,例如:

ConsoleDemo.java
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()方法,在读取使用者于主控台下输入的密码时,不会显示使用者输入的字符(这在过去要用其它麻烦的方式来达到),例如:

ConsoleDemo.java
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());