如何使Backspace\b在Eclipse的控制台中工作?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

我正在创建一个小型Java应用程序,它应该有一个带有百分比的进度指示器。在每个循环中,它都使用Backspace。\b若要在显示下一个百分比之前删除显示的进度,请执行以下操作。

下面是一个简化的示例:

public static void main(String[] args) throws Exception {
    System.out.print("Progress: ");
    for (int percentage = 0; percentage < 100; percentage++) {
        System.out.print(percentage + "%");
        Thread.sleep(10); // Stub for "long running task".
        int length = String.valueOf(percentage).length() + 1;
        while (length-- > 0) {
            System.out.print('\b');
        }
    }
    System.out.println("finished!");
}

这在命令提示符中工作得很好,但是在Eclipse的控制台中没有识别出Backspace字符(伽利略构建了20090920-1017)。相反,它会显示一个空方格,表示一个未知字符。见截图:

如何让Eclipse正确地“显示”后台空间?也就是说,让它删除前一个字符。

这实际上没有显示停止,因为它将只在命令控制台中运行,但是让它在Eclipse中工作也是很好的:)

提问于
用户回答回答于
用户回答回答于

当然,你不能使用backspace\b来删除显示的进度,但是可以使用调用println的循环清除控制台。当然这个Kluge不会清除你的日志文件!

扫码关注云+社区