DownloadManager на Java
От: wirt  
Дата: 25.07.07 13:51
Оценка:
Стоит задача написать некое подобие DownloadManager'a на Java.
Т.е. на вход подается некий удаленный файл, который мы читаем в несколько потоков и записываем на локальный диск.
Технические сложности возникли с чтением файла в несколько потоков и соответственно с записью файла в несколько потоков...
Как я делаю:
разбиваю файл на N частей, каждая часть читается с определенной позиции и пишется в соответственную позицию отдельным потоком.
Для чтения с определенного места использую
InputStream.mark()
, для записи
RandomAccessFile.seek()
.
Но в результате выполнения получаю фантомные IOExceptions Write error. Возможно это результат проблемы с синхронизацией.

Вопрос, поддерживает ли Java многопоточное чтение с одного InputStream (markable()==true), и поддерживается многопоточная запись в RandomAccessFile? Какие есть другие альтернативы и\или возможные причины проблемы?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.