/** * @author chinajash */ public class ConsoleTest { public static void main(String[] args) { Console console = System.console();//获得Console实例 if(console!=null){//判断console是否可用 String user = new String(console.readLine("Enter user:")); //读取整行字符 String pwd = new String(console.readPassword("Enter passowrd:")); //读取密码,密码输入时不会显示 console.printf("User is:"+user+"\n"); console.printf("Password is:"+pwd+"\n"); }else{ System.out.println("Console is unavailable"); } } } |
如果在NetBean5.5里面运行上面程序,会输出
Console is unavailable
表示Console不可获得,那是因为JVM不是在命令行中被调用的或者输入输出被重定向了. 但是如果我们在命令行中运行上面程序(java ConsoleTest),程序能够获得Console实例,并执行如下:
Enter user:chinajash Enter passowrd: User is:chinajash Password is:chinajash |
在这里可以看到输入密码时,控制台时不显示这些密码字符的,但是程序可以得到输入的密码字符串,这与Linux下面输入密码的情况是一样的。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/