Я хочу определить позицию курсора в консольном приложении 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.