2011-04-08 68 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); 
}