2017-01-23 449 views
0

我有一个程序化的Java程序,有多个段,我想手动执行(使用“按Enter键继续”)。Java等待输入按(不要执行多个按键)

现在我一直在尝试使用System.in.read()或Scanner,但是如果我要进行多次输入,它会自动执行下一个段。

我该如何规范这种行为?

+0

可能的重复:http://stackoverflow.com/questions/18281543/java-using-scanner-enter-key-pressed?rq = 1 –

+0

您可以在每个段完成后清空输入缓冲区吗?我没有尝试过,但是做了类似[伪代码] System.in.read([in.available()length]的byte数组)。以“冲洗”一切。 –

回答

0

我建议使用BufferedReader而不是System.in.read()。它也有一个内置的冲洗机制。

0

在等待下一个输入之前,您必须从InputStream中删除所有内容。

System.in.available()返回当前流中的字节数。

System.in.read(new byte[System.in.available()]); 

这会清除流,所以现在用户必须再次输入内容。

注意:System.in.skip()由于某种原因不起作用。