java - 在 Java 控制台应用程序中读取光标位置
问题描述
我想确定 Java 控制台应用程序中的光标位置。
这可以通过以下 ANSI 代码序列来实现:
ESC[6n
如果我发送那个 ANSI 转义命令,我会得到答案,但我无法在 Java 中检索它。这是我尝试过的:
public class ConsoleTest {
public static final String ANSI_GET_CURSOR_POSITION = "\u001B[6n";
public ConsoleTest() {
System.out.println(ANSI_GET_CURSOR_POSITION);
BufferedReader obj = new BufferedReader(new InputStreamReader(System.in));
String str = null;
do {
try {
str = obj.readLine();
System.out.println(str);
} catch (IOException ex) {
Logger.getLogger(ConsoleTest.class.getName()).log(Level.SEVERE, null, ex);
}
} while(!str.equals("stop"));
}
}
这就是我得到的,即使按 ENTER 也无济于事:
% java -jar ConsoleTest.jar
^[[24;1R
stop
stop
很明显,控制台用代码回答,但我无法在 Java 应用程序中读取它。
解决方案
推荐阅读
- excel - 插入代码以查找空列时,VBA 运行时错误 1004“应用程序定义或对象定义错误”
- python - 过滤字典列表中的键/值
- python - SQLAlchemy ORM:“AttributeError:无法在行中找到列”
- slack - Slack-socketmode 自定义集成
- python - 如何运行一次函数,然后在另一个函数运行之前不运行?
- c++ - C++:std::variant 可以保存向量、地图和其他容器吗?
- node.js - Node-Addon-Api 需要解构器吗?
- go - 读取 /dev/gpiomem 时 CPU 使用率高
- multithreading - 多线程 Circos
- laravel - Jetstream 浏览器会话不列出设备 – Laravel 8