Нужна помощь с использованием потоков Java для загрузки частей файла - PullRequest
0 голосов
/ 13 февраля 2012

Я пытаюсь загрузить файл с сервера в указанном пользователем количестве частей (n). Таким образом, существует файл x байтов, разделенных на n частей, причем каждая часть загружает часть целого файла одновременно. Я использую потоки для реализации этого, но я не работал с http раньше и не очень понимаю, как на самом деле работает загрузка файла. Я прочитал об этом, и мне кажется, что нужно использовать «Диапазон», но я не знаю, как загружать разные части и иметь возможность добавлять их без повреждения данных.

1 Ответ

0 голосов
/ 13 февраля 2012

(Поскольку это домашнее задание, я дам вам только подсказку)

Присоединение к одному файлу не поможет вам вообще, так как это испортит данные. У вас есть две альтернативы:

  • Загрузите из каждого потока в отдельный временный файл, а затем объедините временные файлы в правильном порядке, чтобы создать окончательный файл. Это, вероятно, легче представить, но довольно уродливый и неэффективный подход.

  • Не придерживайтесь обычной семантики в стиле потока - используйте произвольный доступ ( 1 , 2 ) для записи данных из каждого потока прямо в нужное место в пределах выходной файл.

...