java 从控制台输入密码
2015-08-20 16:48
597 查看
如果想从控制台读取用户输入,我们一般用Scanner 类留可以了,但是其输入是可见的,所以Scanner类不适用于从控制台读取密码。Java SE 6 引入了Console类实现这个目的。Java.lang.System类提供静态方法console()获取Console类的实例。
•static Console console()
Console类提供几个静态方法读取用户输入
不带提示信息读取一行输入
•static char[] readLine()
带提示信息和格式参数读取一行输入
•static String readLine(String prompt, Object… args )
不带提示信息读取密码
•static char[] readPassword()
带提示信息和格式参数读取密码
•static char[] readPassword(String prompt, Object… args )
注意:该方法只能在控制台命令行中使用,不能在java IDE中使用(会抛出java.lang.NullPointerException)。
下面给出示例:
测试结果如下:
为了安全,返回的密码存放在一维字符数组中,而不是字符串中。在对密码进行处理之后,应该马上用一个填充值覆盖数组元素。
采用Console对象处理输入不如采用Scanner方便。每次只能读取一行输入,没有能够读取一个单词或一个数值的方法。
•static Console console()
Console类提供几个静态方法读取用户输入
不带提示信息读取一行输入
•static char[] readLine()
带提示信息和格式参数读取一行输入
•static String readLine(String prompt, Object… args )
不带提示信息读取密码
•static char[] readPassword()
带提示信息和格式参数读取密码
•static char[] readPassword(String prompt, Object… args )
注意:该方法只能在控制台命令行中使用,不能在java IDE中使用(会抛出java.lang.NullPointerException)。
下面给出示例:
public class TestConsole { public void testConsole() { // 获取Console对象 Console cons = System.console(); if(cons != null){ System.out.println(); // 输入用户名,后面的格式参数省略 String name = cons.readLine("name: "); // 输入密码, 后面的格式参数省略 char[] pwd = cons.readPassword("password: "); System.out.println("Hello! \nYour name is: " + name); System.out.println("Your password is: " + new String(pwd)); } else { System.out.println("Couldn't get Console instance, maybe you're running this from within an IDE?"); System.exit(0); } } public static void main(String[] args) { new TestConsole().testConsole(); } }
测试结果如下:
为了安全,返回的密码存放在一维字符数组中,而不是字符串中。在对密码进行处理之后,应该马上用一个填充值覆盖数组元素。
采用Console对象处理输入不如采用Scanner方便。每次只能读取一行输入,没有能够读取一个单词或一个数值的方法。
相关文章推荐
- Struts2(二)——配置文件struts2.xml的编写
- mac - myeclipse 破解
- spring+activemq 发送10W消息报端口被占用的异常分析以及topic持久化订阅
- Struts2(一)——总体介绍
- 第17章 MVC模式与Struts2框架
- [Java] 多线程
- Java中的序列化
- eclipse 远程 debug
- java返回间隔时间(时分秒)
- 《Spring in Action 4》阅读札记
- java使用ffmpeg和mencoder做视频格式转换
- java使用ffmpeg和mencoder做视频格式转换
- Java单例模式结合JUC原子类爆发的新想法
- Spring+Quartz定时器
- java解析json字符串
- Spring Bean Scope 有状态的Bean 无状态的Bean
- (转)Spring Bean Scope 有状态的Bean 无状态的Bean
- JAVA反射机制
- Struts2 一、 视图转发跳转
- Java 序列化Serializable详解