为什么要使用java.io.Console?

这里只是一个快速的。

使用java.io.Console有什么好处,而不是使用为System.in包装InputStreamReaderBufferedReader

我为什么要用它?

谢谢你的建议!

您可以使用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