【问题标题】:How to readLine with echo in Java?如何在 Java 中使用 echo 读取Line?
【发布时间】:2011-11-08 08:34:15
【问题描述】:

我想使用带有 readLine() (或类似)的 BufferedReader,它可以为每次按下的键返回一个回显。

用于远程终端。另一个问它的方法是如何在 java 中实现控制台。

这是想到的,但太丑陋了。是否有任何已知的库可以实现这样的功能?

while(condition) {

    nByteRead = in.read(buffer);

    if (nByteRead != -1) {

        //  ECHO
        out.write(buffer, 0, bytes_read);                      

        //  read bytes till NEW_LINE...                            
        //  etc...!                            
    }                           
}                    

当然,我可以将这种行为封装在某个线程中,并为此使用一个库,我只是想知道是否已经发明了一些轮子。

感谢任何提示!

【问题讨论】:

    标签: java console readline bufferedreader


    【解决方案1】:

    大多数终端,包括 Ubuntu 和 Windows 中的默认终端(我相信)在用户点击返回之前不会将字符传递给 JVM。 (即,它在系统的较低级别上以全行为基础进行缓冲。)

    如果您需要从终端一次读取一个字符,则必须使用较低级别的系统库。

    相关问题:

    (免责声明,我不确定我是否正确理解了您的问题。)

    【讨论】:

    • 我想你明白了,但我不想从终端读取,我想从套接字读取,向用户发送“回声”,所以他看到输入的内容已经到达服务器。
    • 客户端是用java写的吗?
    • 不,客户端不一定是 Java
    【解决方案2】:

    【讨论】:

    • 我会尝试 JLine,但我发现它使用了一些 dll,并且在 windows 和 linux 上的工作方式不同。我看到没有 Java 标准方法可以做到这一点,所以也许我会手动编写代码,谢谢
    猜你喜欢
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    相关资源
    最近更新 更多