JDK 6中新增的Java Console类功能概览

开发 后端
本文介绍了JDK 6中新增的Java Console类的功能。如果你的Java程序要与Windows下的cmd或者Linux下的Terminal交互,就可以用这个Java Console类代劳。

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

TestConsole.java 代码:

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

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

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

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

【编辑推荐】

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

责任编辑:yangsai 来源: JavaEye论坛
相关推荐

2010-02-04 09:17:26

Visual Stud

2022-03-15 14:11:21

iOS苹果操作系统

2013-10-11 09:41:01

Windows 8.1支付宝

2009-07-07 13:02:29

JDK1.5

2017-11-16 15:54:01

2009-04-27 13:42:38

SQL Server Hierarchyid微软

2020-09-17 08:09:16

JDK发布预览

2020-05-11 15:01:16

JavaJKD 15工具

2023-05-10 08:21:42

Es6Set

2023-07-19 08:03:05

Future异步JDK

2021-05-21 09:34:40

React React 17前端

2010-12-23 14:21:50

生物识别

2024-04-23 08:08:04

C#

2009-03-10 10:45:51

PHP5函数实例

2010-01-28 15:20:06

Android Jav

2010-12-29 10:55:51

Hyper-V

2010-12-27 14:58:13

2010-06-29 14:34:40

NetBeans 6.NetBeans

2009-06-30 15:18:10

StringBuildJava

2013-06-13 16:55:09

iOS7WWDC苹果
点赞
收藏

51CTO技术栈公众号