Чтение позиции курсора в консольном приложении Java - PullRequest
0 голосов
/ 26 мая 2020

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

...