小编典典

Java中基于控制台的进度

java

有没有简单的方法可以在控制台中显示Java流程的滚动百分比?我有一个在特定过程中生成的百分比数据类型(双精度),但是我可以将其强制到控制台窗口并刷新,而不是为每个新的百分比更新打印一行新内容吗?我正在考虑推送cls和进行更新,因为我在Windows环境中工作,但是我希望Java具有某种内置功能。欢迎所有建议!谢谢!


阅读 367

收藏
2020-09-28

共1个答案

小编典典

您可以打印回车符\r以将光标放回到行首。

例:

public class ProgressDemo {
  static void updateProgress(double progressPercentage) {
    final int width = 50; // progress bar width in chars

    System.out.print("\r[");
    int i = 0;
    for (; i <= (int)(progressPercentage*width); i++) {
      System.out.print(".");
    }
    for (; i < width; i++) {
      System.out.print(" ");
    }
    System.out.print("]");
  }

  public static void main(String[] args) {
    try {
      for (double progressPercentage = 0.0; progressPercentage < 1.0; progressPercentage += 0.01) {
        updateProgress(progressPercentage);
        Thread.sleep(20);
      }
    } catch (InterruptedException e) {}
  }
}
2020-09-28