jddl (Java Direct Downloader) is a simple and lightweight java library, which makes it very easy and trivial to direct-download multiple files over HTTP and to track the download progress. Now supports SSL and basic authentication.
Note: Support for FTP downloads will be added in future releases
jddl is a multi-threaded API capable of parallel-downloading multiple files and uses a custom event handler to update the download status. Below is a basic example.
// Create a DirectDownloader instance
DirectDownloader dd = new DirectDownloader();
String file = "http://someserver/somefile.zip"
String out = "somefile.zip"
// Add files to be downloaded
dd.download( new DownloadTask( new URL( file ), new FileOutputStream( out ), new DownloadListener() {
String fname;
public void onUpdate(int bytes, int totalDownloaded) {
// update progress bar etc.
}
public void onStart(String fname, int size) {
this.fname = fname;
System.out.println( "Downloading " + fname + " of size " + size );
}
public void onComplete() {
System.out.println( fname + " downloaded" );
}
public void onCancel() {
System.out.println( fname + " cancelled" );
}
} ) );
// Start downloading
Thread t = new Thread( dd );
t.start();
t.join();
Below are some comprehensive examples of using jddl.