java - 如何允许用户输入而不阻塞直到输入开始?

标签 java io

我正在开发一个项目,其中我必须编写一个聊天客户端。对于这个项目,我们不能使用 UI,它必须用 Java 编写。我已经有一段时间没有使用 Java 了,所以我发现自己陷入了试图找到“Java”方式来做某事的困境。

我想做的是允许处理传入的数据并将其打印到控制台,但同时允许输入。我知道同时进行非阻塞输入/输出并不是一个简单的任务(有时甚至是可能的),但幸运的是,这也不是我正在寻找的。描述我想要的最好方法是能够处理、显示和打印输出,直到用户输入开始。

我知道这可以在 C/C++ 中使用 switch 语句来完成,但据我所知,Java 中没有等效的方法。我发现了 nio 包,并开始阅读它,但到目前为止还没有结果。

关于如何使用 Java 工具集最好地执行此任务,有哪些建议?另外,如果不清楚,我很抱歉,我很难用语言表达我的愿望。

最佳答案

所以最后我最终选择了 this post 中找到的信息。在格雷厄姆·金的博客中。除此之外,我使用单个线程对传入数据进行排队,然后在输入完成后打印它们。

传入的数据会打印到屏幕上,直到用户输入开始,然后暂停,然后在用户输入结束时显示用户输入期间接收到的所有数据。

关于java - 如何允许用户输入而不阻塞直到输入开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13079271/

相关文章:

java - 初始化后如何修改JSlider值

java - 线程中出现错误并且未显示我的 toast

Scala:逐行读取一个巨大的压缩文本文件而不加载到内存中

python - 获取需要很长时间才能运行的目录中的最新文件

c - 在C中将文件逐行读取到数组中

java - 将 JScrollPane 添加到 JTextArea

Java Disruptor 处理异常

java - 在 Dart 和 Java 之间共享类型

C : How to check end of input from keyboard or file while using scanf one char at a time

ruby - 在 Ruby 中检索文件