Java文本进度条

简介: Java文本进度条

f8da0fffac6343ea80c9e87f87b3ca17.gif

知识点 '\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();
            }
        }
    }
}


相关文章
|
2月前
|
人工智能 缓存 自然语言处理
Java与多模态AI:构建支持文本、图像和音频的智能应用
随着大模型从单一文本处理向多模态能力演进,现代AI应用需要同时处理文本、图像、音频等多种信息形式。本文深入探讨如何在Java生态中构建支持多模态AI能力的智能应用。我们将完整展示集成视觉模型、语音模型和语言模型的实践方案,涵盖从文件预处理、多模态推理到结果融合的全流程,为Java开发者打开通往下一代多模态AI应用的大门。
353 41
|
Java API Apache
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
907 5
|
存储 搜索推荐 算法
Java中的文本搜索与全文检索引擎
Java中的文本搜索与全文检索引擎
|
Java 程序员 Spring
“解密Java文本读取:File与MultipartFile“
“解密Java文本读取:File与MultipartFile“
437 0
|
Java 语音技术 Windows
一篇文章讲明白java文本转语音
一篇文章讲明白java文本转语音
148 0
|
XML Java 数据格式
Java用xpdf库获取pdf文件的指定范围文本内容
Java用xpdf库获取pdf文件的指定范围文本内容
248 1
|
前端开发 Java
基于Java爬取微博数据(二) 正文长文本+导出数据Excel
【5月更文挑战第12天】基于Java爬取微博数据,正文长文本+导出数据Excel
|
Java
Java 15 炫酷特性揭秘:告别拼接,迎接文本块时代
Java 15 炫酷特性揭秘:告别拼接,迎接文本块时代
101 0
|
Java Maven
java获取文件编码,jsoup获取html纯文本
java获取文件编码,jsoup获取html纯文本
126 0
|
算法 C++ Python
Java每日一练(20230430) 文本左右对齐、素数和、整数转英文表示
Java每日一练(20230430) 文本左右对齐、素数和、整数转英文表示
154 0
Java每日一练(20230430) 文本左右对齐、素数和、整数转英文表示