我正在用 java 制作一个下载实用程序,它将从 ftp 服务器下载文件。我正在使用 URLConnection 类来建立连接和 inputstream 作为流对象。我面临的问题是网络故障情况,即在下载特定文件时,如果连接丢失并且连接恢复后,我希望它从之前停止的位置恢复下载。
为了实现这一点,我做了以下工作:-
/*在这里,我试图跳过到目前为止下载的字节数,以便从应该恢复下载的流中获取指针。skip() 方法可能不一定会跳过作为参数给出的字节数,因此while 循环。*/
while(totalByteSkipped!=downloaded)
{
bytesSkipped = stream.skip(downloaded-totalByteSkipped);
totalByteSkipped = totalByteSkipped+bytesSkipped;
}
但是这种手动跳过这么多字节的方法非常慢并且会影响下载的整体时间,因此在这种情况下,我需要一种机制来获取流中停止下载的指针。
希望在相同的情况下获得另一种方法。谢谢!!