我有一个控制台Java应用程序,它在后台执行一些任务。如果键盘缓冲区中存在某些内容并且我知道所有控制台读取和测试都在阻塞,Java不支持控制台kbhit()进行测试。
我要做的是使用console.readLine()之类的东西启动后台线程,然后在阻塞调用完成后再设置一些终止标志。应用程序后台任务将检查此标志并确定是否需要终止。
顺便说一下,我的应用程序在工作期间写入控制台(通过logback等进行记录),但从未读过它。这样的策略是好的吗?
答案 0 :(得分:1)
您可以使用System.in.available()>0
,但只能从控制台缓冲整行(按下回车键后)