如何显示在java控制台(无UI)下载文件的百分比进度? [英] How to show percentage progress of a downloading file in java console(without UI)?
问题描述
我的Java代码部分如下。
My part of java code is below.
while (status == DOWNLOADING) {
/* Size buffer according to how much of the
file is left to download. */
byte buffer[];
if (size - downloaded > MAX_BUFFER_SIZE) {
buffer = new byte[MAX_BUFFER_SIZE];
} else {
buffer = new byte[size - downloaded];
}
// Read from server into buffer.
int read = stream.read(buffer);
if (read == -1){
System.out.println("File was downloaded");
break;
}
// Write buffer to file.
file.write(buffer, 0, read);
downloaded += read;
}
/* Change status to complete if this point was
reached because downloading has finished. */
if (status == DOWNLOADING) {
status = COMPLETE;
}
我想显示下载文件的进度百分比通过更新控制台中的进度行。请帮忙。
谢谢。
I want to show the progress of the downloading file as percentage by updating the progress line in console. Please help. Thanks.
推荐答案
如果您对输出满意
正在下载档案... 10%... 20%... 38%...
Downloading file ... 10% ... 20% ... 38% ...
到该行,您只需打印
而不是 println
。如果你想做一些有限的事情,只是更新几个字符到位,你可以打印退格字符擦除,然后重新打印百分比,例如:
that keeps appending to the line, you can just print
instead of println
. If you want to do something limited like just update a few characters in place, you can print the backspace character to erase then re-print the percent, for example:
System.out.print("index at: X");
int lastSize = 1;
for (int i = 0; i < 100; i++) {
for (int j = 0; j < lastSize; j++) {
System.out.print("\b");
}
String is = String.toString(i);
System.out.print(is);
lastSize = is.length();
}
注意代码如何跟踪打印了多少字符,
Note how the code tracks how many characters were printed, so it knows how many backspaces to print to erase the appended text.
比这更复杂,你需要一些控制台或终端控制SDK。 ncurses是Unix标准,它看起来像有一个Java端口:
Something more complex than that, you need some sort of console or terminal control SDK. ncurses is the Unix standard, and it looks like there's a Java port:
我从来没有使用过这个,所以我不能保证。如果它不正确,一个快速谷歌显示了许多替代品。
I have never used this one so I can't vouch for it. If it's not right, a quick Google showed many alternatives.
这篇关于如何显示在java控制台(无UI)下载文件的百分比进度?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!