使用 java 写入控制台窗口中的同一位置

发布于 2024-11-04 13:58:41 字数 201 浏览 4 评论 0原文

我想将一个字符写入控制台窗口中的同一位置。

我想写的字符是 / - \ _。这将为我提供一个小微调器,我可以显示该微调器以显示进度或加载。

那么如何将这些字符写入同一位置呢?否则,你最终会得到这样的结果 /-\_/-\_/-\

I would like to write a character to the same location in a console window.

The characters I would like to write are / - \ _. This will get me a little spinner I can display to show progress or loading.

How can you write the chars to the same location though? Otherwise, you will wind up with something like this /-\_/-\_/-\

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

往昔成烟 2024-11-11 13:58:41

对于 Java 6,您可以使用 Console 执行如下操作:

class Main {
    public static void main(String[] args) throws InterruptedException {
        String[] spinner = new String[] {"\u0008/", "\u0008-", "\u0008\\", "\u0008|" };
        Console console = System.console();
        console.printf("|");
        for (int i = 0; i < 1000; i++) {
            Thread.sleep(150);
            console.printf("%s", spinner[i % spinner.length]);
        }
    }
}

\u0008 是特殊的退格字符。打印时会删除该行的最后一个字符。通过开始打印 | ,然后在所有其他字符之前添加 \u0008 ,您将获得微调器行为。

请注意,这可能无法 100% 与所有控制台兼容(并且 System.console() 可以返回 null)。

另请注意,您不一定必须使用控制台类,因为将此序列打印到标准输出通常也同样有效。

With Java 6 you can use the Console to do something like this:

class Main {
    public static void main(String[] args) throws InterruptedException {
        String[] spinner = new String[] {"\u0008/", "\u0008-", "\u0008\\", "\u0008|" };
        Console console = System.console();
        console.printf("|");
        for (int i = 0; i < 1000; i++) {
            Thread.sleep(150);
            console.printf("%s", spinner[i % spinner.length]);
        }
    }
}

\u0008 is the special backspace character. Printing that erases the last character on the line. By starting to print a | and then prepending the \u0008 before all other characters you get the spinner behavior.

Note that this might not be 100% compatible with all consoles (and that System.console() can return null).

Also note that you don't necessarily have to use the console class, as printing this sequence to standard output commonly works just as well.

感悟人生的甜 2024-11-11 13:58:41

我认为 Java 本身不允许这样做。您需要使用一些外部库 - 也许 JCurses 可以帮助您。

I don't think Java natively allows for that. You need to use some external library - maybe JCurses can help you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文