千家信息网

如何解析JDK 6中Java Console类功能的概览

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,本篇文章给大家分享的是有关如何解析JDK 6中Java Console类功能的概览,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JDK
千家信息网最后更新 2024年11月23日如何解析JDK 6中Java Console类功能的概览

本篇文章给大家分享的是有关如何解析JDK 6中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.");  // 提示无控制台使用权限              }               }           }

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

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

以上就是如何解析JDK 6中Java Console类功能的概览,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

0