package TreadDemo;
import org.apache.commons.io.FileUtils;
// commons.io是一个别人写好的包(自己网上下载后导入的),FileUtils是其中的一个类
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
// 实现多线程同步下载图片
public class Test04 extends Thread {
String url;
String fileName;
public Test04(String url, String fileName) {
this.url = url;
this.fileName = fileName;
}
public static void main(String[] args) {
WebDownLoad.print_aaa1(); // 当为static方法时,可以通过类来调用
new WebDownLoad().print_aaa2(); // 当为非static方法时,可以通过对象来调用
Test04 p1 = new Test04("/i/l/?n=23&i=blog/3071897/202308/3071897-20230826185623575-972599911.png", "p1.jpg");
Test04 p2 = new Test04("/i/l/?n=23&i=blog/3071897/202308/3071897-20230826234005264-1093560945.png", "p2.jpg");
Test04 p3 = new Test04("/i/l/?n=23&i=blog/3071897/202308/3071897-20230826234636234-196551557.png", "p3.jpg");
p1.start();
p2.start();
p3.start(); // 下载图片,每次下载的顺序不一定相同,这就是线程
}
// 下载网络图片的 线程执行体
public void run() {
WebDownLoad webDownLoad = new WebDownLoad();
try {
webDownLoad.download(url, fileName);
} catch (IOException e) {
System.out.println("IO异常");
}
System.out.println("下载了文件,名为:" + fileName);
}
}
//网络图片下载器
class WebDownLoad {
public static void print_aaa1(){
System.out.println("aaa1");
}
public void print_aaa2(){
System.out.println("aaa2");
}
public void download(String url, String fileName) throws IOException {
FileUtils.copyURLToFile(new URL(url),new File(fileName)); // 当为static方法时,可以通过类来调用
}
}
标签:String,04,url,fileName,下载,new,网图,public,Test04
From: https://www.cnblogs.com/zhanjianhai/p/17663255.html