java进度条功能的实现原理是什么?实例展示

BSO 2020-08-28 14:20:46 java常见问答 7274

在科学技术与经济水平高速发展的21世纪,掌握一门扎实的技术对每一个人来说都是极其重要的。今天主要为大家介绍一下,java中进度条功能的实现原理是什么,以及通过一个实例代码来向大家展示究竟该怎么操作。

首先,我们需要知道的是,进度条功能执行命令的原理是什么?

它的关键是用到了这个函数:

System.out.print("\b");

其中转义符\b的作用就是删除游标前面的一个字符。

这里为大家举例说明一下:

System.out.print("hello,world!");
System.out.print("\b\b");

执行完第一行后是输出:

hello, world!

注意这里用的都是print函数,而不是println函数。当我们执行到第二行后,输出就变为:

hello, worl

因为有两个\b,所以删除两个字符,因此删掉了d和!,还剩下hello,worl。这就是它的原理,原理了解了之后,它的效果实现就比较简单了。接下来通过一个实例代码来为大家展示。

实例如下所示:

public class ProgressBar
{
    private int index = 0;
    private String finish;
    private String unFinish;
    // 进度条粒度
    private final int PROGRESS_SIZE = 50;
    private int BITE = 2;
    private String getNChar(int num, char ch)
    {
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < num; i++)
        {
            builder.append(ch);
        }
        return builder.toString();
    }
    public void printProgress() throws InterruptedException
    {
        System.out.print("Progress:");
        finish = getNChar(index / BITE, '█');
        unFinish = getNChar(PROGRESS_SIZE - index / BITE, '─');
        String target = String.format("%3d%%[%s%s]", index, finish, unFinish);
        System.out.print(target);
        while (index <= 100)
        {
            finish = getNChar(index / BITE, '█');
            unFinish = getNChar(PROGRESS_SIZE - index / BITE, '─');
            target = String.format("%3d%%├%s%s┤", index, finish, unFinish);
            System.out.print(getNChar(PROGRESS_SIZE + 6, '\b'));
            System.out.print(target);
            Thread.sleep(50);
            index++;
        }
    }
}

以上就是关于java进度条功能的实现原理,以及相关的代码实例展示。想要了解更多有关java程序代码例子,敬请关注奇Q工具网。

推荐阅读:

java运算符的分为哪几类?详细实例展示。

java图书信息查询实例

java队列实现方式实例展示,什么是阻塞队列?