Console类

原文链接:http://blog.csdn.net/huang9012/article/details/6842828


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");      // 显示用户名//注意不是System.printf,而是console.printf
  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类的运行方式。
  注意:在Eclipse诸如类似的IDE工具中运行Console类。如果没有对Console实例判空操作,结果使用了该实例会抛出java.lang.NullPointerException异常。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值