How to get backspace \b to work in Eclipse's console?

家住魔仙堡 提交于 2019-11-26 05:56:53

问题


I\'m creating a little Java application which should have a progress indicator with percentages. In every loop it uses backspace \\b to remove the displayed progress before displaying the next percentage.

Here\'s a simplified example:

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!\");
}

This works perfectly in command prompt, but the backspace character isn\'t recognized in Eclipse\'s console (Galileo build 20090920-1017). It instead displays an empty square denoting an unknown character. See screenshot:

\"alt

How do I get Eclipse to \"display\" the backspace properly? I.e. let it remove the previous character.

This is actually no showstopper since it will just be run in command console, but it would be just nice to get it to work in Eclipse as well :)


回答1:


Eclipse Bug #76936. I wouldn't count on them to fix it, and there are no workarounds listed.

You might have luck finding a plugin that contributes a more advanced console.




回答2:


Well, it's true you can't use backspace \b to remove the displayed progress, but you could remove it by clearing the console with a loop calling println. Of course this kluge won't clear your log file!




回答3:


Fixed, Eclipse Mars.

Note, I wouldn't use it to do constant updating, as the eclipse console lags.




回答4:


use: System.out.print("\b ") inside the while loop, instead of System.out.print('\b');



来源:https://stackoverflow.com/questions/3095986/how-to-get-backspace-b-to-work-in-eclipses-console

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!