Progressbar в консоли - Java

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

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

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

Решение задачи: «Progressbar в консоли»

textual
Листинг программы
  1. public class Programm {
  2.     static void updateProgress(double progressPercentage) {
  3.         final int width = 50; // progress bar width in chars
  4.  
  5.         System.out.print("\r[");
  6.         int i = 0;
  7.         for (; i <= (int)(progressPercentage*width); i++) {
  8.           System.out.print(".");
  9.         }
  10.         for (; i < width; i++) {
  11.           System.out.print(" ");
  12.         }
  13.         System.out.print("]");
  14.       }
  15.  
  16.       public static void main(String[] args) {
  17.         try {
  18.           for (double progressPercentage = 0.0; progressPercentage < 1.0; progressPercentage += 0.01) {
  19.             updateProgress(progressPercentage);
  20.             Thread.sleep(20);
  21.           }
  22.         } catch (InterruptedException e) {}
  23.       }
  24. }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут