Multi-threaded File Downloader CLI
A Java command-line tool that downloads a file by splitting it into byte-range chunks fetched concurrently across multiple threads, then reassembles them. Learners practice ExecutorService, thread coordination, and HTTP range requests.
- Estimate
- ~8.5h
- Steps
- 5
- Completed by
- 0
- Proposed by
- codeseed.app
Java HttpClient · ExecutorService
Project roadmap
- 01
Query file metadata
~1hCheck the target URL's content length and whether it supports byte-range requests.
- 02
Split the download into chunks
~1.5hDivide the file into byte-range chunks and design a download task for each.
- 03
Download chunks concurrently
~2.5hUse an ExecutorService to fetch chunks in parallel while tracking overall progress.
- 04
Reassemble the file
~1.5hMerge downloaded chunks back into the final file in the correct order.
- 05
Add progress and resume
~2hShow a live progress bar and support resuming interrupted downloads.
Resources
Ready to build this?
Get a GitHub repo and start building. Your AI reviewer checks each step as you go.
Tech stack