Какую структуру пользовательского интерфейса вы используете?В случае, если это Swing, вы можете поместить свой код загрузки в SwingWorker и обновить индикатор выполнения при записи в буфер.Вы также можете хранить записанное количество байтов в локальной переменной и использовать Timer, однако это выглядит менее элегантно (но работает).
Если мое предположение о Swing верное, wikipedia имеет хороший пример SwingWorkerпомочь начать с.