使用System.out(和相关)总是看起来很尴尬,因为公共领域,现在与最新的Netbeans给出了一个明显的"声明应删除"提示.
因此我的问题是:System.out仍然是写入控制台的首选方式,还是应该首选的其他API?
编辑:我不想将其用于日志记录,而是用于简单的控制台应用程序.类似的东西ps将正在运行的进程打印到控制台.
Ste*_*n C 11
在设计为从命令行运行的命令中,(IMO)合理地使用System.out和System.err输出,以及用户可合理期望理解的错误消息.如果从正常的shell或脚本运行应用程序,则可以将System.out和/或System.err流重定向到文件或管道中的其他进程,但这是用户的选择.
在JDK 1.6及更高版本中,java.io.Console您的应用程序可以访问控制台.它没有在Javadoc中拼写出来,但我怀疑它java.io.Console会向控制台打开一个新流,因此无法重定向.(相当于在老式的UNIX机器上打开"/ dev/tty".)如果你的应用程序想要确保它正在与用户交谈,那么你应该只使用它,而不需要重定向; 例如,在请求和读取密码时.
但请注意,这Console不能保证有效.实际上,据观察,当您从Eclipse运行应用程序时,它不起作用......可能还有其他IDE.
但是,如果您的应用程序是GUI命令,特别是如果它打算作为无人参与服务运行,则应避免"写入控制台",因为:
System.{out,err}或java.io.Console)可能没有连接,或1 - 根据控制台输出的性质,这实际上可能正是用户想要的.但应用程序员需要考虑到这一点.
| 归档时间: |
|
| 查看次数: |
4872 次 |
| 最近记录: |