В 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
).
Также обратите внимание, что вам не обязательно использовать класс консоли, поскольку печать этой последовательности в стандартный вывод обычно работает так же хорошо.