重複の可能性:
Java を使用してコンソール ウィンドウの同じ場所に書き込む
プログレスバー/カウンタータイプのようにできるように、Javaでターミナルに出力した出力行を置き換える方法があるかどうか疑問に思っていました。
「1/1000 に挿入されたレコード」と「1/1000 に挿入されたレコード」を印刷して、最新のものだけが表示されるように置き換えたいと思います。
重複の可能性:
Java を使用してコンソール ウィンドウの同じ場所に書き込む
プログレスバー/カウンタータイプのようにできるように、Javaでターミナルに出力した出力行を置き換える方法があるかどうか疑問に思っていました。
「1/1000 に挿入されたレコード」と「1/1000 に挿入されたレコード」を印刷して、最新のものだけが表示されるように置き換えたいと思います。
カーソルを行頭に置く \r 文字を表示します。そして、新しい行を書きます。
public static void main(String[] args) throws InterruptedException {
System.out.print("test");
Thread.sleep(3000);
System.out.print('\r');
System.out.print("lulz");
}
System.out パイプを再配線して、独自のフィルターを通過するだけです。例えばSystem.setOut(new MyStream(System.out));
https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#setOut-java.io.PrintStream-
次に、実装する必要がありますMyStream
。
public class MyStream extends PrintStream {
private PrintStream standardOut;
public MyStream(PrintStream standardOut) {
this.standardOut = standardOut;
}
... Then here override the appropriate methods (e.g. `println()`, etc...) to correct the output and send it to `standardOut`.
}