我正在开发一个项目,其中我必须编写一个聊天客户端。对于这个项目,我们不能使用 UI,它必须用 Java 编写。我已经有一段时间没有使用 Java 了,所以我发现自己陷入了试图找到“Java”方式来做某事的困境。
我想做的是允许处理传入的数据并将其打印到控制台,但同时允许输入。我知道同时进行非阻塞输入/输出并不是一个简单的任务(有时甚至是可能的),但幸运的是,这也不是我正在寻找的。描述我想要的最好方法是能够处理、显示和打印输出,直到用户输入开始。
我知道这可以在 C/C++ 中使用 switch 语句来完成,但据我所知,Java 中没有等效的方法。我发现了 nio 包,并开始阅读它,但到目前为止还没有结果。
关于如何使用 Java 工具集最好地执行此任务,有哪些建议?另外,如果不清楚,我很抱歉,我很难用语言表达我的愿望。
最佳答案
所以最后我最终选择了 this post 中找到的信息。在格雷厄姆·金的博客中。除此之外,我使用单个线程对传入数据进行排队,然后在输入完成后打印它们。
传入的数据会打印到屏幕上,直到用户输入开始,然后暂停,然后在用户输入结束时显示用户输入期间接收到的所有数据。
关于java - 如何允许用户输入而不阻塞直到输入开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13079271/