为什么要使用java.io.Console?
这里只是一个快速的。
使用java.io.Console
有什么好处,而不是使用为System.in
包装InputStreamReader
的BufferedReader
?
我为什么要用它?
谢谢你的建议!
您可以使用java.io.Console
向用户显示交互式命令行。 您可以自己使用System.in
完成所有这些操作,但是您必须实现诸如在输入完成时注意到的事项,或者readPassword
等。
因为它的代码已经为你编写了……不需要重新发明轮子。 机会是,你不会比现在更好。
看java.io.Console终于来了!
最近对J2SE最常见的function请求之一是改进控制台支持的请求,并提供了一种在禁用echo的情况下输入密码的方法。 开发人员知道这个function4050435,因为它已经在Top 25 RFE列表中躲藏了一段时间。
java.io.Console仅在从命令行启动Java程序时有效,而不重定向STDIN / STDOUT。
我在Console over System.in中看到的主要优点是你有readPassword()方法,它不会回显用户输入的字符(我找不到用System.in做这个的方法)。
您还有readLine(),它将显示提示并读取一行。 您不必创建自己的LineNumberReader。
但是,如果您希望Java程序在从文件或管道重定向时能够从STDIN读取,则仍然必须使用System.in。
另一个技巧我很确定你不会使用Console – 我创建了自己的输入和输出流并用它们取代了System.in/out。 我的流的实现附加到日志文件以及回显到屏幕。
当我打开我的穷人的“调试信息”时,我甚至可以告诉我sysout来自哪个程序/行(虽然它很慢。它创建了一个exception并检查了相应的堆栈条目,所以它默认是关闭的)
java.io.Console
用于在运行时从用户获取和读取输入,并在处理来自用户的输入后显示输出。
有关更多详细信息,请访问https://www.examsmyantra.com/article/58/java/java-io—console-input-and-output