【多線程】實現多線程同步下載圖片
【多線程】實現多線程同步下載圖片
代碼示例:
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.net.URL;
/**
* @Description 實現多線程同步下載圖片
* @Author hzx
* @Date 2022-03-26
*/
public class ThreadTest02 extends Thread {
private String url; //網絡圖片地址
private String name; //保存的文件名
public ThreadTest02(String url, String name) {
this.url = url;
this.name = name;
}
/**
* 下載圖片線程的執行體
*/
@Override
public void run() {
WebDownloader webDownloader = new WebDownloader();
webDownloader.downloader(url, name);
System.out.println("下載了文件:"+name);
}
public static void main(String[] args) {
ThreadTest02 t1 = new ThreadTest02("https://img2022.cnblogs.com/blog/1617979/202203/1617979-20220315222236055-1081286442.png","1.jpg");
ThreadTest02 t2 = new ThreadTest02("https://img2022.cnblogs.com/blog/1617979/202203/1617979-20220315222535845-769752621.png","2.jpg");
ThreadTest02 t3 = new ThreadTest02("https://img2022.cnblogs.com/blog/1617979/202203/1617979-20220315222316724-2013137843.png","3.jpg");
t1.start();
t2.start();
t3.start();
}
}
//下載器
class WebDownloader {
/**
* 下載方法
*/
public void downloader(String url,String name) {
try {
FileUtils.copyURLToFile(new URL(url), new File(name));
} catch (IOException e) {
e.printStackTrace();
System.out.println("IO異常,下載方法出現問題");
}
}
}
執行結果:
下載了文件:2.jpg
下載了文件:1.jpg
下載了文件:3.jpg
- 說明:使用 FileUtils 工具類需要導入 commons.io 的jar包。

浙公網安備 33010602011771號