Можно ли вернуться к определенной строке при печати в java (в окне терминала)?

Я практикую базовое программирование на Java на BlueJ и делаю личный проект, в котором программа будет печатать символы в форме «*» каждые 5 строк на основе ввода.
Мне было интересно, есть ли способ вернуться к определенную строку в окне терминала BlueJ или мне нужно работать как-то иначе?

Если кто-то может дать какие-либо предложения по упрощению программы, это было бы полезно.


person sphd    schedule 05.04.2015    source источник
comment
stackoverflow.com/questions/9693124/ Однострочный вид работает, несколько нет.   -  person Adrian Leonhard    schedule 05.04.2015
comment
Вам нужно очистить консоль и снова распечатать.   -  person Gabriel Negut    schedule 05.04.2015
comment
То есть в принципе невозможно перейти на предыдущую строку после печати нескольких строк? @AdrianLeonhard @GabrielNegut   -  person sphd    schedule 05.04.2015
comment
С технической точки зрения, вы могли бы сделать это с помощью некоторого собственного кода для конкретной платформы, но это слишком сложно для вашего варианта использования. Написать кучу переносов строк, чтобы очистить консоль, перепечатать и все.   -  person Gabriel Negut    schedule 05.04.2015


Ответы (1)


Независимый от ОС, независимый от устройства, общий способ сделать это состоит в том, чтобы создать двумерный массив символов, который представляет экран. Будучи массивом, вы, конечно, можете заполнять его в любом порядке. Когда все будет готово, простой вложенный цикл может распечатать содержимое в выходной поток. Также не зависит от языка.

Возможные проблемы этого подхода включают вывод на несколько тысяч строк или слишком широких строк.

person Abhay    schedule 05.04.2015
comment
Но нет способа узнать размер экрана, не прибегая к коду, специфичному для ОС, поэтому вы можете только сделать массив достаточно большим и надеяться, что вы не будете писать за пределами реального экрана. - person Gabriel Negut; 05.04.2015
comment
@GabrielNegut Верно! Вот что я хотел сказать в последней строке. Таким образом, одно из решений состоит в том, чтобы использовать некоторый минимальный системно-зависимый код, чтобы узнать размер экрана и передать его нашему методу рендеринга. При портировании нужно менять только обертку. - person Abhay; 05.04.2015
comment
@Abhay, спасибо, похоже, это подход, который может сработать. Я попробую. - person sphd; 05.04.2015