我想在控制檯窗口中將同一位置寫入一個字符。使用java編寫與控制檯窗口中的相同位置
我想寫的字符是/
-
\
_
。這會讓我有點微調,我可以顯示進度或加載。
雖然你如何將字符寫入相同的位置?否則,你會結束這樣的事情/-\_/-\_/-\
我想在控制檯窗口中將同一位置寫入一個字符。使用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可以幫助你。
這是用於Windows終端還是其他終端? – 2011-05-02 16:32:24
Windows現在,但希望它是跨平臺 – user489041 2011-05-02 16:40:08