Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个控制台 Java 应用程序,它在后台执行一些任务。Java 不支持控制台 kbhit() 来测试键盘缓冲区中是否存在某些内容,并且据我所知,所有控制台读取和测试都处于阻塞状态。
我要做的是用 console.readLine() 之类的东西启动一个后台线程,然后在这个阻塞调用完成后放置一些终止标志。应用程序后台任务会检查这个标志并决定它们是否需要终止。
顺便说一句,我的应用程序将在其工作期间写入控制台(通过 logback 等记录),但从不读取它。
这样的策略好不好?
您可以使用System.in.available()>0,但只能从控制台缓冲整行(按回车键后)
System.in.available()>0