如何清除Java中的标准输入(术语)?
一点点历史:我正在写一个“反射”程序,算法很简单:
wait a random amount of time
print "press enter"
read line
关键是,如果用户误按了回车键,它将被读取,因此测试将出错。我的目标是纠正这个错误。为此,我想要一个这样的算法:
wait a random amount of time
clear stdin
print "press enter"
read line
但我找不到办法做到这一点。这篇文章似乎很有趣:available
获取剩余字符的数量skip
并将跳过它们。只在纸上工作。如果您通过多次按下回车键来强调应用程序,则该available
方法返回
估计可以从该输入流中读取(或跳过)而不会阻塞的字节数
所以,有时,返回值是错误的,至少一个回车留在缓冲区中,错误仍然存在。
这个解决方案可能会奏效,但它依赖于我不想成为的平台。此外,从 Java 调用系统例程是一个非常糟糕的主意。
要恢复,我想清除程序的标准输入,但我不想关闭它,也不想阻止我的程序等待用户提供输入。对我来说,这似乎是一个非常基本的问题,如果答案很明显,我会感到羞耻!