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

为什么要使用java.io.Console?,java,input,console,Java,Input,Console,这里就来一杯 使用java.io.Console与使用BufferedReader为系统包装InputStreamReader相比,有什么好处 我为什么要用它 谢谢你的建议 因为这是已经为您编写的代码……无需重新发明轮子。很有可能,您不会得到比现在更好的结果。您可以使用java.io.Console向用户显示交互式命令行。您可以使用系统完成所有这些操作。您可以自己在中完成这些操作,但您必须实现一些功能,如注意输入何时完成,或读取密码等。请参见 最受欢迎的功能之一 近年来对J2SE的请求不断增加

这里就来一杯

使用
java.io.Console
与使用
BufferedReader
系统包装
InputStreamReader
相比,有什么好处

我为什么要用它


谢谢你的建议

因为这是已经为您编写的代码……无需重新发明轮子。很有可能,您不会得到比现在更好的结果。

您可以使用
java.io.Console
向用户显示交互式命令行。您可以使用
系统完成所有这些操作。您可以自己在
中完成这些操作,但您必须实现一些功能,如注意输入何时完成,或
读取密码等。

请参见

最受欢迎的功能之一 近年来对J2SE的请求不断增加 这是改进控制台的要求 支持并提供进入的方式 禁用回显的密码。 开发人员知道这个特性4050435 因为它一直躲在前25名 RFEs列表已经有一段时间了


仅当从命令行启动java程序而不重定向STDIN/STDOUT时,java.io.Console才起作用

与System.in相比,我看到Console的主要优点是您有readPassword()方法,它不会回显用户键入的字符(我找不到一种方法使用System.in来实现这一点)

您还有readLine(),它将显示一个提示并读取一行。您不必创建自己的LineNumberReader


但是,如果您想让Java程序在从文件或管道重定向时能够从STDIN中读取数据,您仍然必须使用System.in.

另一个我很确定您不会从Console获得的技巧——我创建了自己的输入和输出流,并用它们替换了System.in/out。我对附加到日志文件的流的实现,以及对屏幕的响应


当我打开我可怜的人的“调试信息”时,我甚至可以让它告诉我sysout来自哪个程序/行(虽然速度很慢。它创建了一个异常并检查了相应的堆栈条目,所以默认情况下它是关闭的)

java.io.Console
用于在运行时获取和读取用户输入,并在处理用户输入后显示输出


有关详细信息,请访问删除字符?这不是由系统控制台自己执行的吗?如果在system.in中使用BufferedReader,则无需“注意”字符或任何此类内容的擦除
readPassword
是使用Console的一个很好的理由。谢谢大家,你们说得对。我删除了关于删除字符的部分。这是真的!那么你是说我不应该为每个项目开发自己的链表泛型类型包裹链接: