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();
            }
        }
    }
}


相关文章
|
6月前
|
安全 Java Spring
【Java用法】Java 过滤html标签获取纯文本信息
【Java用法】Java 过滤html标签获取纯文本信息
107 0
|
2月前
|
Java Maven
java获取文件编码,jsoup获取html纯文本
java获取文件编码,jsoup获取html纯文本
13 0
|
3月前
|
算法 C++ Python
Java每日一练(20230430) 文本左右对齐、素数和、整数转英文表示
Java每日一练(20230430) 文本左右对齐、素数和、整数转英文表示
28 0
Java每日一练(20230430) 文本左右对齐、素数和、整数转英文表示
|
3月前
|
Java
Java PDF 相关 1、拷贝多个PDF到一个PDF,并且文件大小变小,文本等信息保留
1、合并多个PDF,并且文件变小,后面添加的文本信息保留
26 0
|
8月前
|
存储 Java
探索Java String:优雅处理文本数据
在Java编程世界中,字符串(String)是一种常见的数据类型,用于存储文本信息。字符串的处理在实际开发中经常涉及到循环操作,以便逐个处理字符串中的字符。本文将带您深入了解Java中对字符串的循环处理,包括循环遍历字符、字符串拼接、字符串分割等操作,助您优雅处理文本数据。
|
4月前
|
Java
Java读取文本文件的不同方式
Java读取文本文件的不同方式
62 1
|
5月前
|
安全 Java
Java读取文本文件
Java读取文本文件
|
6月前
|
自然语言处理 Java 关系型数据库
JSP文本相似性比较系统myeclipse开发mysql数据库web结构计算机java编程
JSP文本相似性比较系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发,采用两种比较常见的文本检测对比方法 编辑距离 和 余弦定理。
33 0
|
8月前
|
Java
Java IO流--使用缓冲流实现非文本文件和文本文件的复制
Java IO流--使用缓冲流实现非文本文件和文本文件的复制
106 0
|
Java 编译器
文本编写Java
文本编译器编写JAVA 控制台CMD模式运行程序: D:\Practice\Java\160717>javac HelloWorld.java D:\Practice\Java\160717>java HelloWorld Hello World!