JDK 6中新增的Java Console类功能概览
创始人
2024-04-13 16:01:03
0

JDK 6中提供了java.io.Console类专用来访问基于字符的控制台设备。如果你的Java程序要与Windows下的cmd或者Linux下的Terminal交互,就可以用这个Java Console类代劳。

TestConsole.java 代码:

  1. package com.simon.testjdk6.console;      
  2.      
  3. import java.io.Console;      
  4.      
  5. public class TestConsole {      
  6.      
  7.     /**     
  8.      * @param args     
  9.      */     
  10.     public static void main(String[] args) {      
  11.         Console console = System.console(); // 获得Console实例对象      
  12.         if (console != null) {              // 判断是否有控制台的使用权      
  13.             String user = new String(console.readLine("Enter username:"));      // 读取整行字符      
  14.             String pwd = new String(console.readPassword("Enter passowrd:"));   // 读取密码,输入时不显示      
  15.             console.printf("Username is: " + user + "\n");      // 显示用户名      
  16.             console.printf("Password is: " + pwd + "\n");   // 显示密码      
  17.         } else {      
  18.             System.out.println("Console is unavailable.");  // 提示无控制台使用权限      
  19.         }      
  20.      
  21.     }      
  22.      
  23. }     

Java要与Console进行交互,不总是能得到可用的Java Console类的。一个JVM是否有可用的Console,依赖于底层平台和JVM如何被调用。如果JVM是在交互式命令行(比如Windows的cmd)中启动的,并且输入输出没有重定向到另外的地方,那么就我们可以得到一个可用的Console实例。

当你有Eclipse或NetBean中运行以上代码时Console中将会有以下文字输出:

Console is unavailable.

表示Java程序无法获得Console实例,是因为JVM不是在命令行中被调用的,或者输入输出被重定向了。

在控制台中运行代码,效果将如下所示:

  1. $ java com.simon.testjdk6.console.TestConsole  
  2. Enter user:Simon  
  3. Enter passowrd:  
  4. User is:Simon  
  5. Password is:12345 

我们可以看到:输入密码时,控制台时不显示我们所输入的密码字符。但是程序可以得到并输出的密码字符串。这就是JDK 6中新增的Java Console类的运行方式。

【编辑推荐】

  1. JDK 6.0中web service的使用浅析
  2. JDK1.5中新的语言特征浅析
  3. JDK的安装图解与环境变量设置详解
  4. JDK与JRE的关系和path的作用浅谈
  5. JDK1.6的十大技术浅谈

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...