3

で実行されるJavaアプリケーションがありますcmd。このプロセスの実行中に進行状況を表示したい。このアプリケーションでは 50 の分岐処理が行われ、1 つの分岐が2%完了し、別の分岐が4%処理された後などを表示したいと考えています。問題は私が使用したときです

System.out.print("PROGRESS :" + branch_Vec.get(value).toString()+" : "+ df2.format(((a / total) * 100)) +" % \r");

出力として、呼び出すたびに新しい行に移動します。

同じ行に進行状況を表示したい.例:

progress : AB : 2%
4

2 に答える 2

1

コードSystem.out.print("\rComplete: "+percentage);は正常に機能するはずです。

これ\rはキャリッジリターンであり、現在の行をクリアします。改行を書かない限り\n、テキストを更新できます。

これをテストに使用している場合、これはEclipseのコンソールでは機能しないことに注意してください。

于 2013-03-13T11:18:31.263 に答える
0

少なくとも簡単な方法では、それを行う方法はありません。ポイントは、デフォルトでは、文字を次々に出力する 、またはと同じことを行うだけでなく、テキストの最後に新しい行を挿入する のSystem.out OutputStreamいずれかを呼び出すことができるということです。print()println()print()

洗練されていない解決策の 1 つは、更新の合間に画面をクリアして、同じ位置に印刷されているように見せることです。たとえば、Windows を使用している場合、これは次のようになります。

Runtime.getRuntime().exec("cls");

残念ながら、この行はclsコマンドを呼び出すため、システムに依存します。

于 2013-03-13T10:10:15.560 に答える