Progressbar в консоли - Java

Узнай цену своей работы

Формулировка задачи:

Есть такая проблема: вывод прогресса обработки файлов в многопоточном режиме. Есть следующий код:
for(int i = 0; i < count; i++) {
    Runnable r = new Thread2(s[i]);
    new Thread(r).start();
}
И класс Thread2
class Thread2 implements Runnable {
    public void run() {
        //некий код
    }
}
Файлов подаётся count штук, например, 100. Как мне выводить прогресс обработки файлов, например, каждые пол секунды?

Решение задачи: «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) {}
      }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5