如何清除控制台中的所有字符?

时间:2012-05-21 15:20:40

标签: java windows console escaping character

我希望我的程序能够删除它打印的所有文本。每次打印时,我都会调用print()方法而不是System.out.print(),但是当我调用erase()方法时,它似乎在Windows 7控制台中没有做任何事情。我无法弄清楚是什么了;我单独进行了一项测试,确认\b确实删除了字符,但无论出于何种原因,它都无法在erase()中使用。退格字符是否相互擦除?

编辑:我已经进行了一些测试。它看起来像\ b不会覆盖换行符。所以我想我需要一种方法来做到这一点。

public static int textLength = 0;

public static void erase() {
    for (int i = 0; i < textLength; i++) {
        System.out.print('\b');
    }
    textLength = 0;
}

public static void print(String s) {
    textLength += s.length();
    System.out.print(s);
}

1 个答案:

答案 0 :(得分:4)

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

修改: 似乎这不是您正在寻找的解决方案。使用时

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

您需要注意,不会删除已打印的内容。相反,每个退格键将光标移回一个字符。然后实际上擦除你需要用其他文本覆盖它的东西。