Java文本进度条

简介: 在Java中,\b 是一个转义字符,表示将光标向左移动一个字符位置。当执行 System.out.print("\b") 时,光标会向左移动一个字符位置,如果此时后面有字符,则会被覆盖,从而产生删除的效果,也就是说光标所过之处文本都会被删除。

知识点 '\b'

       在Java中,\b 是一个转义字符,表示将光标向左移动一个字符位置。当执行 System.out.print("\b") 时,光标会向左移动一个字符位置,如果此时后面有字符,则会被覆盖,从而产生删除的效果,也就是说光标所过之处文本都会被删除。


注意:光标指的是这种光标。


由于每次移动光标修改完进度数值以后,所以我们都需要 “修补” 后面的内容。


代码

public class Bar {
    public static void main(String[] args) throws InterruptedException {
        printProgress();
    }
    //光标左移的单位
    public static void printToPre(int num){
        for (int i = 0; i < num; i++) {
            System.out.print("\b");
        }
    }
    //输出进度 '>'
    public static void printBar(int num){
        for (int i = 0; i < num; i++) {
            System.out.print('>');
        }
        for (int i = 0; i < 10-num; i++) {
            System.out.print('-');
        }
        System.out.print(']');
    }
    public static void printProgress() throws InterruptedException {
        System.out.print("下载进度:___%[----------]");
        int i = 0;  //代表进度条的初始值 i%
        int j = 0;  //代表 '>' 的个数
        printToPre(11);//移动到 '[' 后面
        while (i < 101) {
            if (i < 10) {//进度为个位数的情况 0%~9%
                printToPre(3);//移动到 '%' 前面
                System.out.print(i + "%[");
                printBar(j);
                Thread.sleep(250);
                printToPre(11);//移动到 '[' 后面
            }else if(i >=10 && i <= 99){//进度为十位数的情况 10%~99%
                printToPre(4);
                System.out.print(i+"%[");
                printBar(j);
                Thread.sleep(50);
                printToPre(11);//移动到 '[' 后面
            }else {//进度条满的情况 100%
                printToPre(5);
                System.out.print(i+"%[");
                printBar(j);
                printToPre(11);
                System.out.print("下载完成!!!]");
            }
            i++;
            if (i%10 == 0){
                j++;
            }
            //动态加载
//            int tmp=0;
//            for (int k = 0; k < i % 10; k++) {
//                tmp+=1;
//            }
//            j = tmp;
            try {
                Thread.sleep(50);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}


目录
打赏
0
0
0
0
37
分享
相关文章
【Java用法】Java 过滤html标签获取纯文本信息
【Java用法】Java 过滤html标签获取纯文本信息
261 0
|
5月前
|
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
299 5
基于Java爬取微博数据(二) 正文长文本+导出数据Excel
【5月更文挑战第12天】基于Java爬取微博数据,正文长文本+导出数据Excel
Java用xpdf库获取pdf文件的指定范围文本内容
Java用xpdf库获取pdf文件的指定范围文本内容
136 1
Java中的文本搜索与全文检索引擎
Java中的文本搜索与全文检索引擎
“解密Java文本读取:File与MultipartFile“
“解密Java文本读取:File与MultipartFile“
222 0
一篇文章讲明白java文本转语音
一篇文章讲明白java文本转语音
70 0
探索Java String:优雅处理文本数据
在Java编程世界中,字符串(String)是一种常见的数据类型,用于存储文本信息。字符串的处理在实际开发中经常涉及到循环操作,以便逐个处理字符串中的字符。本文将带您深入了解Java中对字符串的循环处理,包括循环遍历字符、字符串拼接、字符串分割等操作,助您优雅处理文本数据。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等