【问题标题】:Why would I want to use java.io.Console over standard streams?为什么我要在标准流上使用 java.io.Console?
【发布时间】:2012-03-09 23:13:54
【问题描述】:

我意识到这可能是一个重复的问题,例如Why Use java.io.Console?。但是,我想要一个更详细的答案(优点/缺点、应用程序等等)。

如果我对此有误解,请原谅我。所以我使用 eclipse 运行了一个程序,我收到了错误消息“No Console”,所以我只是放手,而是通过终端运行它。但是,我有点不清楚为什么控制台对象会这样做(我认为这是因为它返回 null,但我想要更详细的答案)。从各种阅读来看,Netbeans 和 Eclipse 等各种 IDE 似乎都没有正确地“实现”这一点。所以它引出了我的问题,因为这是我第一次看到java.io.Console,我为什么要在标准流上使用它?使用控制台的应用程序示例受到赞赏和首选!

【问题讨论】:

    标签: java


    【解决方案1】:

    interactive shells 编写的程序为命令行用户提供了很多便利

    • 制表符补全
    • 历史跟踪
    • 密码输入对肩冲浪者安全
    • 彩色和格式化输出
    • 使用首选寻呼机来分页文本

    Console 允许经常通过命令行调用的 java 程序向在交互式 shell 中调用它的用户呈现良好的用户体验。

    例如,Console.readLine 可能听起来与BufferedReader.readLine 非常相似,但是当程序从交互式bash shell 运行时,它的行为类似于UNIX readline

    说明

    readline 将从终端读取一行并将其返回,使用提示符作为提示符。如果 prompt 为 NULL 或空字符串,则不发出提示。返回的行用 malloc(3) 分配;调用者必须在完成后释放它。返回的行已删除最后的换行符,因此仅保留该行的文本。

    readline 在用户输入行时提供编辑功能。默认情况下,行编辑命令与 emacs 类似。还提供vi风格的行编辑界面。

    ...

    搜索中

    Readline 提供了用于在命令历史记录中搜索包含指定字符串的行的命令。有两种搜索模式:增量和非增量。


    我为什么要在标准流上使用它?

    如果您的程序产生文本输出,并且其用户可能包括经常在交互式 shell 中调用它的系统管理员,那么他们可能会从 Console 中受益。

    【讨论】:

      猜你喜欢
      • 2010-11-01
      • 1970-01-01
      • 2011-03-21
      • 2016-06-10
      • 2011-12-30
      • 2014-01-29
      • 2010-09-21
      • 2015-03-16
      相关资源
      最近更新 更多