java - 如何在Java中使用echo读取行?

标签 java console readline bufferedreader

我想使用带有一种 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...!                            
    }                           
}                    

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

感谢您的任何提示!

最佳答案

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

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

相关问题:

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

关于java - 如何在Java中使用echo读取行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7269970/

相关文章:

java - 写时复制和比较然后交换之间的区别?

c++ - 在控制台日志中保留巨大的数字

python - 扭曲服务器有没有 "remote console"?

Node.js 6 和匿名对象

c# - [c#]如何让控制台在一行中读取两个字符串

c# - 使用 StreamReader 和 Readline() 为文件生成 MD5 值

javascript - 如何使用 node.js 的 readline 模块进行两次连续输入?

java - 格式为 <0-999>.<0-999>.<0-999> 的版本的简化正则表达式解决方案

java - 如何设置 "org.w3c.css.sac.parser"系统属性?

java - 如何使用 Mockito 编写单元测试