Если вы используете реальную консоль, печатный вывод не повлияет на письменный ввод. Если вы наберете «go», а система напечатает «Снова», то в буфере все равно будет «go». Это не интуитивно понятно и плохо читается, но практично прерывать выполнение скриптов или других программ.
Это может уже работать в вашей IDE или вашей системе, в зависимости от ОС и IDE.
Если вам нужно что-то более «красивое», тогда вам нужно полностью контролировать ввод и вывод, очень похоже на команду «top» в linux (если вам это известно). Вы можете справиться с этим способом ввода лучше с классом Console
. См .: https://www.codejava.net/java-se/file-io/3-ways-for-reading-input-from-the-user-in-the-console # 3
Наиболее интуитивная идея для решения вашей проблемы - прочитать, а затем удалить все входные данные в тот момент, когда вы хотите что-то напечатать и перепечатайте его, так что вы получите:
> go
received go
obj finished reacting!
> go
...
Вы в основном всегда печатаете строку ввода самостоятельно, предварительно прочитав и удалив уже напечатанный ввод. Вот почему вам нужен класс Console, потому что там, вход и выход синхронизированы , поэтому, если вы печатаете что-то, вы знаете, что за это время ввода не произойдет.