frosty7777777
@frosty7777777

Как в Java удалить крайний символ или строку, напечатанную на экране терминала?

Есть ли в принципе такая возможность?
  • Вопрос задан
  • 2021 просмотр
Решения вопроса 1
pi314
@pi314
Президент Солнечной системы и окрестностей
Возможность есть, но она никак не связана с Java. Это можно сделать с помощью т.н. Escape-последовательностей, если они поддерживаются терминалом (если терминал работает в режиме эмуляции, например, VT-52 или VT-100). В таком режиме работает большинство терминалов в Linux.

Удалить последнюю строку, выведенную с символом перевода каретки (когда после вывода строки курсор находится в позиции 1 следующей строки) можно, например, так:
System.out.println("Hello world"); //Print the line

System.out.print(String.format("\033[%dA",1)); // Move cursor up by 1 line
System.out.print("\033[2K"); // Erase the line


Полный список кодов можно найти, например, вот тут.
upd:
С помощью Escape-последовательностей можно делать намного больше: переключать цвета, позиционировать курсор, "стирать" части строки или весь экран, и т.д. и т.п. Для интенсивного использования ANSII, особенно под Виндой, може оказаться полезной Jansi.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
03 мая 2024, в 00:45
1000 руб./за проект
02 мая 2024, в 23:56
2000 руб./за проект