在Java控制台应用程序中保持输入/输出分离

时间:2010-09-03 10:25:58

标签: java console console-application

我正在用Java编写控制台应用程序。它类似于聊天客户端:输入和输出是异步制作的。问题是,如果在用户处于打字过程中进行了某些输出,则线条将在屏幕上混淆。

我正在寻找一种解决方案,它允许我将输入区域与输出区域分开。目前我正在使用一个额外的线程来轮询System.in上的BufferedReader。

程序需要在Linux服务器上运行,并通过ssh会话进行访问。所以任何只在这种环境下工作的提示都可以。

是否有任何高级库可以执行此操作?或者是否有使用终端/ ANSI代码的智能技巧? ANSI代码s(保存光标)和r(恢复光标)可能会有所帮助,但我如何知道跳转到哪里进行输出以及如何处理滚动?

2 个答案:

答案 0 :(得分:2)

我很久以前回想起在C ++中使用类似的东西。那时我正在使用ncurses库。查看javacurses,它似乎是像ncurses这样的Java实现。

答案 1 :(得分:1)

听起来你需要使用Curses。 JCurses是Curses库的Java实现,可以让您控制终端以允许滚动,定位等。

相关问题