大可制作:QQ群:31564239(asp|jsp|php|mysql)

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());

要注意的是,以javaw所执行的应用程序,没有主控台(Console),也就取不到Console对象(例如在Eclipse中)。