我有一个在cmd
上运行的java应用程序。我想在运行此过程时显示进度。在这个应用程序中,50个分支处理,我希望在处理完一个分支 2%之后显示,并且在另一个分支处理 4%之后完成,依此类推。
问题是我用的时候
System.out.print("PROGRESS :" + branch_Vec.get(value).toString()+" : "+ df2.format(((a / total) * 100)) +" % \r");
作为输出,每次调用它都会转到新行。
我想在同一行显示进度。例如:
progress : AB : 2%
答案 0 :(得分:1)
代码System.out.print("\rComplete: "+percentage);
应该可以正常工作。
\r
是回车符,将清除当前行。只要您不写新行\n
,就可以更新文本。
请注意,如果您正在使用它来测试,那么在Eclipse的控制台中无效。
答案 1 :(得分:0)
至少以一种简单的方式,无法做到这一点。关键是默认System.out
OutputStream
允许您调用print()
,一个接一个地打印字符,或println()
,其作用与{{1}相同},但也在文本的末尾加上一个新行。
一个非优雅的解决方案是清除更新之间的屏幕,以使其看起来像是在相同的位置打印。例如,如果你使用的是Windows,那就是:
print()
不幸的是,这一行与系统有关,因为它调用了Runtime.getRuntime().exec("cls");
命令。