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