0

重複の可能性:
Java を使用してコンソール ウィンドウの同じ場所に書き込む

プログレスバー/カウンタータイプのようにできるように、Javaでターミナルに出力した出力行を置き換える方法があるかどうか疑問に思っていました。

「1/1000 に挿入されたレコード」と「1/1000 に挿入されたレコード」を印刷して、最新のものだけが表示されるように置き換えたいと思います。

4

2 に答える 2

2

カーソルを行頭に置く \r 文字を表示します。そして、新しい行を書きます。

public static void main(String[] args) throws InterruptedException {

    System.out.print("test");

    Thread.sleep(3000);

    System.out.print('\r');

    System.out.print("lulz");

}
于 2012-05-21T16:56:52.097 に答える
0

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`.
}
于 2012-05-21T16:58:31.600 に答える