2011-04-08 73 views
3

我想要一些ascii字符週期性更改以指示我的CLI程序正在運行,如 - | \/- |/....舊字符被替換爲新的,它看起來像動畫。有沒有圖書館接近這個?java cli運行指示燈

克加

+0

大家好,我沒有時間來測試建議。我會在完成時給你反饋。順便說一句:對於昂貴的計算,在CLI中顯示愚蠢的進度符號是一個壞主意:-) – 2011-04-18 22:13:27

回答

0

最簡單的想法:嘗試更換所有控制檯(行&的cols)與動畫的新視圖(幀)。

0

我曾經寫過一個測試程序,它的一部分工作像curl/wget來下載文件。要打印進度,我只使用了System.err.print(n); System.err.print('\r');,它將光標移動到行的開始位置,準備進行下一個進度更新。但在你的情況下,你可能會打印每一個"\\\b""-\b""/\b"\b退格),以重複以獲得紡紗效果。

1

您可能想要使用carriage return(CR)字符(java中的'\ r')來執行此操作。我會做這樣(假設你是在該行的開始做動畫):

我的解決方案(Test.java):

public class Test 
{ 
    public static void main(String[] args) 
    { 
     try 
     { 
      System.out.print("\\"); 
      Thread.sleep(1000); 
      System.out.print("\r|"); 
      Thread.sleep(1000); 
      System.out.print("\r/"); 
     }catch(Exception e) 
     { 
     } 
    } 
} 
0

在斯卡拉:

"-|\\/-|/".toCharArray().foreach {c => print ("\b" + c); Thread.sleep (250); } 

模擬,但在Java中更多的代碼,但沒有測試:

for (c : "-|\\/-|/".toCharArray()) 
{ 
    System.out.print ("\b" + c); 
    Thread.sleep (250); 
}