Я делаю утилиту загрузки в Java, которая будет загружать файлы с FTP-сервера.
Я использую класс URLConnection для установления соединения и inputtream в качестве объекта потока.
Проблема, с которой я сталкиваюсь, заключается в сценарии сбоя сети, т.е.
при загрузке определенного файла, если подключение потеряно и после восстановления подключения я хочу, чтобы он возобновил загрузку с того места, где он был остановлен ранее.
Для этого я сделал следующее: -
/ * Здесь я пытаюсь пропустить количество загруженных байтов настолько, чтобы получить указатель в потоке, откуда он должен возобновить загрузку. Метод skip () может не обязательно пропускать количество байтов, указанное в качестве параметр и, следовательно, время цикла.
* /
while(totalByteSkipped!=downloaded)
{
bytesSkipped = stream.skip(downloaded-totalByteSkipped);
totalByteSkipped = totalByteSkipped+bytesSkipped;
}
Но такой подход, при котором вручную пропускается так много байтов, очень медленный и влияет на общее время загрузки, поэтому в таком случае мне нужен механизм для получения указателя в потоке в точке, где он прекратил загрузку.
Надеясь получить альтернативный подход к тому же.
Спасибо !!