我们什么时候应该使用控制台类?(When should we use console class?)

2019-08-04 17:47发布

我在读有关Console类,并在第一行,它被写

新到Java 6,当我们正在运行Java SE 6在命令行中,那么我们通常使用控制台类对象

因此,这意味着我们正在暗中通过命令行使用控制台类?

于是,我开始寻找有关Console类更详细,我发现从控制台输入类在Java和控制台的链接。 因此,总结一些要点

  1. 控制台类是只使用IDE外可用 System.console().readLine();
  2. Console读取从使用回送禁止控制台一个密码或口令 readPassword()

虽然,我们有扫描仪类的BufferedReader类来读取从控制台的输入,将早于加入Java 5 。 所以,不仅是因为安全原因Console中加入类Java 6 ? 或者还有没有其他的优势(S)使用这个类。

任何人都可以分享更多的细节Console类?

Answer 1:

控制台类从处理控制台(在Unix系统通常的/ dev /控制台)直接读取。 控制台从System.in不同之处在于当命令启动它不能被重新定向。 它也可以用来读取密码,因为从控制台读取,你可以控制你是否不回被键入的字符。

为了澄清更多关于这个课,阅读在Unix系统控制台和标准输入(这通常是一个Unix的事情,我真的不知道它是如何映射到Windows系统)。

所以这是从控制台不同的是文件,流或控制台本身:最后,扫描仪可以从任何输入读取。



Answer 2:

Console类试图实现一个独立于平台的方式来处理与控制台输入。 所有操作系统以任何方式控制台,但他们在实现安静diferent。 所以Console类为您提供了一个Java平台无关的运行时类访问之类的密码输入等



Answer 3:

是否一个虚拟机具有控制台取决于底层平台,也取决于在其中虚拟机被调用的方式。 如果虚拟机从一个交互式命令行开始,而不需要重新定向标准输入和输出流,那么其控制台将存在并且通常将被连接到从所述虚拟机发起的键盘和显示器。 如果虚拟机是由后台作业调度程序自动启动,例如,那么它通常不会有一个控制台。

如何获取输入从控制台类在Java?



文章来源: When should we use console class?