Написать в то же место в окне консоли с Java - PullRequest
8 голосов
/ 02 мая 2011

Я хотел бы написать символ в том же месте в окне консоли.

Я хотел бы написать следующие символы: / - \ _.Это даст мне небольшой счетчик, который я могу отобразить, чтобы показать прогресс или загрузку.

Как вы можете записать символы в то же место, хотя?В противном случае вы получите что-то вроде этого /-\_/-\_/-\

Ответы [ 2 ]

21 голосов
/ 02 мая 2011

В Java 6 вы можете использовать Console, чтобы сделать что-то вроде этого:

class Main {
    public static void main(String[] args) throws InterruptedException {
        String[] spinner = new String[] {"\u0008/", "\u0008-", "\u0008\\", "\u0008|" };
        Console console = System.console();
        console.printf("|");
        for (int i = 0; i < 1000; i++) {
            Thread.sleep(150);
            console.printf("%s", spinner[i % spinner.length]);
        }
    }
}

\u0008 является специальным символом возврата. Печать, которая стирает последний символ в строке. Начав печатать |, а затем добавив \u0008 перед всеми остальными символами, вы получите поведение счетчика.

Обратите внимание, что это может быть не на 100% совместимо со всеми консолями (и что System.console() может возвращать null).

Также обратите внимание, что вам не обязательно использовать класс консоли, поскольку печать этой последовательности в стандартный вывод обычно работает так же хорошо.

2 голосов
/ 02 мая 2011

Я думаю, что Java изначально не допускает этого.Вам нужно использовать какую-то внешнюю библиотеку.Возможно Библиотека курсов Java может вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...