Progressbar в консоли - Java
Формулировка задачи:
Есть такая проблема: вывод прогресса обработки файлов в многопоточном режиме.
Есть следующий код:
И класс Thread2
Файлов подаётся count штук, например, 100. Как мне выводить прогресс обработки файлов, например, каждые пол секунды?
for(int i = 0; i < count; i++) {
Runnable r = new Thread2(s[i]);
new Thread(r).start();
}class Thread2 implements Runnable {
public void run() {
//некий код
}
}Решение задачи: «Progressbar в консоли»
textual
Листинг программы
public class Programm {
static void updateProgress(double progressPercentage) {
final int width = 50; // progress bar width in chars
System.out.print("\r[");
int i = 0;
for (; i <= (int)(progressPercentage*width); i++) {
System.out.print(".");
}
for (; i < width; i++) {
System.out.print(" ");
}
System.out.print("]");
}
public static void main(String[] args) {
try {
for (double progressPercentage = 0.0; progressPercentage < 1.0; progressPercentage += 0.01) {
updateProgress(progressPercentage);
Thread.sleep(20);
}
} catch (InterruptedException e) {}
}
}