В Scala или Java, как печатать строку для консоли, заменяя ее предыдущий контент, а не добавляя?

Приложение A Scala выполняет некоторую обработку данных. Было бы неплохо показать прогресс обработки в процентах, переписывающих предыдущее значение на изменение, а не добавление нового значения к уже отображенному. Как добиться этого эффекта? Я использую Scala 2.8 для Linux.

Ответ 1

Ваши самые простые варианты - использовать возврат каретки без перевода строки "\r" или символа обратного пробела "\u0008". Если вы используете backspace, вам нужно отслеживать, сколько символов вы выбрали, чтобы вы могли достаточно сделать резервную копию (и исключить лишнее). Если вы возвращаете карету, вам нужно переписать всю строку (и записать пробелы, чтобы исключить лишний).

Ответ 2

Если вы программировали на C/С++, ответ был бы однозначно "ncurses".

В Java есть реализация curses, которая может вас заинтересовать:

Java Curses