Java implements multi-threaded download and supports breakpoint continuation
Full code: https://github.com/iyuanyb/Downloader
The implementation of multi-threaded download and breakpoint continuation uses the range request parameter introduced by HTTP / 1.1 to access the content of the specified interval of web resources. Although multithreading and breakpoint continuation are realized, there are still many imperfections.
Contains four classes:
demonstration:
Download any file:
Forcibly end the program and rerun:
Log file:
The key of breakpoint continuation is to record the download progress of each thread. There are many details here, which took a long time. Only the range interval requested by each thread needs to be recorded. Geeks update the download interval every time they successfully write data to the file. The following is the log content after downloading.
code:
Downloader. java
DownloadTask. java
DownloadFile. java
Logger. java