Java将输出行替换为标准输出

时间:2012-05-21 16:53:22

标签: java command-line

  

可能重复:
  Write to same location in a console window with java

我想知道在java中是否有一种方法来替换你输出到终端的输出行,这样你就可以像进度条/计数器那样做。

我想做一些类似于打印出“记录插入1/1000”然后“记录插入2/1000”的内容,替换它以便只显示最新的记录。

2 个答案:

答案 0 :(得分:1)

打印\ r \ n字符,将光标放在行的开头。然后写下新的一行。

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

    System.out.print("test");

    Thread.sleep(3000);

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

    System.out.print("lulz");

}

答案 1 :(得分:0)

只需重新连接System.out管道以通过您自己的过滤器。例如System.out = new MyStream(System.out);

然后,您需要实施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`.
}