Java

java控制台输出进度条怎么实现

小亿
265
2024-05-30 11:44:13
栏目: 编程语言

在Java控制台输出进度条可以通过使用控制台打印来实现。以下是一个简单的示例代码:

public class ProgressBar {
    public static void main(String[] args) {
        int total = 100;
        for (int i = 0; i <= total; i++) {
            int progress = (int) ((double)i/total * 100);
            System.out.print("\rProgress: [" + repeat("#", progress) + repeat(" ", 100-progress) + "] " + progress + "%");
            try {
                Thread.sleep(100); // 模拟任务执行时间
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public static String repeat(String str, int times) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < times; i++) {
            sb.append(str);
        }
        return sb.toString();
    }
}

在上面的代码中,我们定义了一个ProgressBar类,其中的main方法用来输出进度条。首先设置总的任务数量为100,然后使用一个循环来模拟任务执行的进度。在循环中,我们计算当前进度百分比并输出进度条,然后使用Thread.sleep来模拟任务执行时间。repeat方法用来生成指定数量的重复字符串,这里用来生成进度条中的#和空格。最后通过控制台的\r换行符来实现动态更新进度条。

运行以上代码,你会在控制台看到类似如下的输出:

Progress: [####################                    ] 50%

这个例子给出了一个基本的进度条实现,你可以根据自己的需求来扩展和定制进度条的样式和功能。

0
看了该问题的人还看了