Я понимаю, что есть несколько способов загрузить файл через inte rnet (http)
Если URL для файла (http://hoge.com/foo.dat
), отправной точкой будет:
new URL("http://hoge.com/foo.dat").openStream();
и выберите способ обработки потока.
Насколько я понимаю, использование BufferedReader
является одним из способов его загрузки и предоставления значений для отображения индикатора выполнения загрузки. Тем не менее, он использует оперативную память (если это не правильно, я рад, хотя ..).
Я считаю, что есть способ загрузки без использования оперативной памяти, как показано ниже:
new FileOutputStream("foo.dat").getChannel()
.transferFrom(
Channels.newChannel(new URL("http://hoge.com/foo.dat").openStream()),
0, Long.MAX__VALUE
);
Но в этом случае я не вижу прогресс, отображаемый в индикаторе выполнения.
Скажите, пожалуйста, как загрузить файл и показать прогресс без использования оперативной памяти.