我正在开发一个我必须编写聊天客户端的项目。对于这个项目,我们不能使用UI,它必须用Java编写。我在很长一段时间内都没有使用Java,所以我发现自己很难找到“Java”方式来做某事。
我要做的是允许处理输入数据并将其打印到控制台,但同时允许输入。我知道同时进行非阻塞输入/输出并不是一项简单的任务(有时甚至是可能的),但幸运的是,这也不是我想要的。描述我想要的最好的方法是能够在用户输入开始之前处理,显示和打印输出。
我知道这可以在带有switch语句的C / C ++中完成,但据我所知,Java中没有相应的东西。我遇到了nio软件包,并开始阅读它,但到目前为止还没有用。
有关如何使用Java工具集最佳执行此任务的一些建议?此外,如果不清楚,我很难道歉,我很难将自己的愿望变成文字。
答案 0 :(得分:1)
所以最后我最终得到了Graham King博客中this post中的信息。除此之外,我使用单个线程对输入数据进行排队,然后在输入完成后打印它们。
输入数据将打印到屏幕上,直到用户输入开始,然后暂停,然后在用户输入结束时显示在用户输入发生时收到的所有数据。
答案 1 :(得分:0)
通常的Java方法是使用多个线程 - 两个专用于每个连接(一个输入,一个输出),以及处理与连接无直接关系的东西所需的任何其他线程。
或者,您可以通过java.nio包使用非阻塞I / O,但它的类型很笨拙。