【发布时间】:2011-04-07 18:48:07
【问题描述】:
我正在用 Java 编写控制台应用程序。它类似于聊天客户端:输入和输出是异步进行的。问题是,如果在用户打字的过程中进行了一些输出,那么这些行会在屏幕上混淆。
我正在寻找一种解决方案,它允许我将输入区域与输出区域分开。目前我正在使用一个额外的线程来轮询 System.in 上的 BufferedReader。
程序需要在 Linux 服务器上运行并通过 ssh 会话访问。因此,任何仅在此环境中有效的提示都可以。
是否有任何高级库可以做到这一点?或者是否有使用终端/ANSI 代码的巧妙技巧? ANSI 代码 s(保存光标)和 r(恢复光标)可能会有所帮助,但我怎么知道跳转到哪里进行输出以及如何处理滚动?
【问题讨论】:
标签: java console console-application