您将必须创建一个单独的线程以阻止读取,直到有可用的线程为止。
如果您不想实际消耗输入,则必须用内部缓冲区包装它,读入缓冲区,然后喊叫,并在要求输入时从缓冲区返回数据。
您可以这样解决:
InputStream stdin = System.in;// Create a wrapper (with it's own dedicated read-thread)MyListenableInputStream listenableInputStream = new MyListenableInputStream(stdin);// Update System.in with something more useful.System.setIn(listenableInputStream);



