Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java实现终端的独立输入/输出_Java_Input_Terminal_Console_Output - Fatal编程技术网

用java实现终端的独立输入/输出

用java实现终端的独立输入/输出,java,input,terminal,console,output,Java,Input,Terminal,Console,Output,我有一个java软件,在一个线程中运行main,该线程带有一个用户输入扫描器(即:“输入”),另一个线程每3秒钟输出一个字符串(即:“输出”)。 结果是: 我没有时间写输入,第二个线程写输出。 有没有办法避免它,让用户在不干扰输出的情况下写入输入?根据评论,我相信您正在寻找一种方法,在一个线程中接受用户输入,同时用另一个线程将输出写入终端中的不同位置。如注释中所述,这在简单的I/O终端中没有多大意义。标准终端在流中接收/输出字节的位置之外没有“位置”的概念 希望你现在明白你的问题不清楚,这取决

我有一个java软件,在一个线程中运行main,该线程带有一个用户输入扫描器(即:“输入”),另一个线程每3秒钟输出一个字符串(即:“输出”)。 结果是:

我没有时间写输入,第二个线程写输出。
有没有办法避免它,让用户在不干扰输出的情况下写入输入?

根据评论,我相信您正在寻找一种方法,在一个线程中接受用户输入,同时用另一个线程将输出写入终端中的不同位置。如注释中所述,这在简单的I/O终端中没有多大意义。标准终端在流中接收/输出字节的位置之外没有“位置”的概念

希望你现在明白你的问题不清楚,这取决于你想做什么

对于这种类型的问题,最常见的方法可能是使用Swing或JavaFX创建自定义GUI终端。您将有一个文本字段接受您的输入,以及一个单独的文本区域显示您的输出

如果你想保持一个文本界面,那么也许可以看看喜欢的选项。示例如下:


用Java重定向标准输出/输入并不总是一件小事,但如果你朝这个方向走,你需要问一些新的、更具体的问题来获得更多帮助。

你的问题不清楚。我相信您要做的是在检测到任何用户输入后立即阻止输出。因此,除非用户输入字符,否则输出线程将每三秒输出一次。然后,输出线程将停止输出,直到用户按下后,此时输出线程将再次开始输出。对吗?如果是这样的话,您可能需要修改您的问题以明确指出这一点。还可以考虑添加代码来显示您尝试过的内容。我想知道是否有一种方法让用户在第二个线程正在编写输出时编写输入。我不想停止第二个线程。我认为在标准I/O终端中,我们所要求的是没有意义的。在标准I/O终端中,不可能将输出写入与输入不同的“位置”。因此,除非您阻止或至少延迟从输出线程写入,否则在写入到另一个位置时,无法在一个位置接受输入。同样,建议您编辑您的问题,以使您想做的更清楚。在非标准I/O终端中执行此操作的方法?编写两个程序,Fxxxx,一个客户端(消费者)和一个服务器(生产者),使用网络流(例如套接字、http、rmi、web套接字等)在客户端和服务器之间进行通信,在单独的终端中独立启动两个应用程序。用于缓冲数据。感谢回复!有没有办法将输出重定向到另一个终端选项卡?ThanksIt最好将一个线程的输出写入一个终端,将另一个线程的输出写入另一个终端