プログレスバーとか進捗状況って、ぼーっと見ちゃうよねw
コンソールで進捗・進行状況を表示するサンプル
コンソールに進捗状況を表示します。
10個のお仕事とは、それぞれ1秒待つだけの簡単なお仕事です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | public class ConsoleProgressTest { public static void main(String[] args) { //10個の簡単なお仕事 int tasks = 10; for (int i = 1; i <= tasks; i++) { //進捗の表示 System.out.print("進捗 : " + i + " / " + tasks + " ["); for (int j = 1; j <= i; j++) { System.out.print("="); } for (int j = i + 1; j <= tasks; j++) { System.out.print(" "); } System.out.print("]\r"); //1秒待つだけの簡単なお仕事 try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println("\n処理終了..."); } } |
実行結果
apt-getとかyumのような感じで、簡単なお仕事の進捗状況が表示されます。
ただし、Eclipseのように統合されたコンソールでは、こんな感じになります。
ふつうに出力したのと変わらない感じになってしまうので、ターミナル、コマンドプロンプトなどでお楽しみください♪
サンプルの解説
“\r”(キャリッジ・リターン)を使うことで、同じ行の先頭に出力位置を戻します。
このサンプルでは、”\r”を使って「進捗 : 8 / 10…」の部分を再出力。同じ行に上書きしています。
余談ですが、、、
CR(キャリッジ・リターン)とは、プリンタのヘッドを左に戻すこと。
LF(ライン・フィード)は、1行分紙を送る(行送り)こと。
というわけで、2つ合わせて改行。ってことですね。ただしWindowsの場合。UNIX系はLFで改行。