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

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

我想写的字符是/ - \ _ 。 这会让我有点微调,我可以显示进度或加载。

你怎么能把字符写到同一个地方呢? 否则,你将结束这样的事情/-\_/-\_/-\

使用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 )。

另请注意,您不一定要使用控制台类,因为将此序列打印到标准输出通常也可以正常工作。

我认为Java本身并不允许这样做。 你需要使用一些永恒的库。 也许Java Curses Library可以帮到你。