用java.io.Console来与字符控制台交互

JDK6中提供了java.io.Console类专用来访问基于字符的控制台设备.
你的程序如果要与Windows下的cmd或者Linux下的Terminal交互,就可以用Console类代劳.(类似System.in和System.out)
但我们不总是能得到可用的Console, 一个JVM是否有可用的Console依赖于底层平台和JVM如何被调用.
如果JVM是在交互式命令行(比如Windows的cmd)中启动的,并且输入输出没有重定向到另外的地方,那么就可以得到一个可用的Console实例。

Console类还有个特色就是,专门对密码等安全字符,进行了处理。专门提供 readPassword()方法.

package test;
 
import java.io.Console;
 
public class TestConsole {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        Console console = System.console();
        if( console != null ) {
            String user = new String( console.readLine( "Enter User:", new Object[ 0 ] ) );
            String pwd = new String( console.readPassword( "Enter Password:", new Object[ 0 ] ));
            console.printf( "User name is:%s", new Object[]{user} );
            console.printf( "Password is:%s", new Object[]{pwd} );
        } else {
            System.out.println( "No Console!" );
        }
    }
}

作者:Ken Wu 原文链接:http://kenwublog.com/interact-with-terminal-using-java-io-console

2008/05/25 | Posted in Development Skills
  1. 牙刷
    2009/06/10 12:43 | #1

    阿哦

  2. 2009/06/10 15:30 | #2

    搞毛啊, 阿花.

Leave a comment

Attention: Java syntax highlighting is enable. For example: <pre lang="java"> class A {} </pre>