Ответ 1
Я подозреваю, что ваш курсор перемещается к передней части линии. Текст, который у вас уже есть, не исчезает, потому что вы ничего не перезаписывали. Вы можете выводить пробелы, чтобы очистить строку, а затем добавить еще один файл \r.
Я только что протестировал следующее в Windows XP и AIX и работает как ожидалось:
public class Foo {
public static void main(String[] args) throws Exception {
System.out.print("old line");
Thread.sleep(3000);
System.out.print("\rnew");
}
}
Я печатаю "старую строку", 3-секундную задержку, а затем "старая строка" изменяется на "новую строку"
Я намеренно сделал первую строку длиннее второй, чтобы продемонстрировать, что если вы хотите удалить всю строку, вам придется перезаписать конец пробелами.
Также обратите внимание, что escape-последовательность "\ b" будет содержать 1 пробел, а не начало строки. Поэтому, если вы только хотели стереть последние 2 символа, вы можете написать:
System.out.println("foo\b\bun")
и получите "удовольствие".