最近在折腾一台服务器,折腾的过程中往往会需要安装很多依赖软件,有的是在官网下载压缩包,有的是通过系统命令直接安装,在通过系统命令直接安装的时候,就会有类似下面的进度条出现。
进度条在我们日常使用的软件中已经很频繁了,不过除了安装软件一般都是在网页中看到,看到这个阿粉就想知道,那如何在标准输出中实现一个进度条呢?
光有想法是不行,接下来我们就开始实践一下,通过 Java 代码在标准输出中实现一个类似的进度条。
首先我们看到一个进度条是从 0 加载到 100 的一个过程,实现进度条我们需要一个最终的状态,然后逐渐从无到有变化形成,所以我们要有一个百分比显示,其次我们要有两种不一样的样式变化。我们可以通过先展示一种符合为百分百,然后不断通过替换新的符合,产生一种变化的效果,这里我们采用下面这两种符号来表示:
char incomplete = '░'; // U+2591 Unicode Character 表示还没有完成的部分 char complete = '█'; // U+2588 Unicode Character 表示已经完成的部分
通过用完成的符号不断地替换未完成的符号,形成一种不断在进行的效果。
接下来我们实现一个静态方法,首先通过Stream.generate(),我们创建未完成的部分,这里用 StringBuilder 来创建字符串对象,通过 append 方式来填充,形式如下 Stream.generate