准备阶段:
首先需要在项目中导入一个Commons.io的jar包;
这个jar包可以在
到这个页面之后往下翻,就可以看到这个jar包的下载地址了;
点击进去,找到我们要的IO
点击之后选择自己想要的版本下载即可;
下载后解压,找到这个jar包,CV进入项目的lib文件夹中
下一步就是右键然后add to library;
接下来就可以写代码了
记得包别导错;(import org.apache.commons.io.FileUtils;)
代码:
package Demo20220308;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.net.URL;
//多线程同步下载图片
public class TestThread extends Thread{
private String url;//网络图片地址
private String name;//保存的文件名
public TestThread(String url,String name){
this.url = url;
this.name =name;
}
//重写run方法
public void run(){
WebDownloader webDownloader = new WebDownloader();
webDownloader.downloader(url,name);
System.out.println("下载了文件名为"+name);
}
public static void main(String[] args) {
TestThread testThread1 = new TestThread( "https://img2.baidu.com/it/u=1182829174,4038066117&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500","风景图.jpg");
TestThread testThread2 = new TestThread("https://img0.baidu.com/it/u=1134699837,958481147&fm=253&fmt=auto&app=120&f=JPEG?w=1422&h=800","动漫图.jpg");
TestThread testThread3 = new TestThread("https://img2.baidu.com/it/u=3249307839,3632574951&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=444","鸣人.jpg");
testThread1.start();
testThread2.start();
testThread3.start();
}
}
//下载器
class WebDownloader{
public void downloader(String url,String name){
//ctrl+alt+t 捕获异常快捷键
try {
FileUtils.copyURLToFile(new URL(url),new File(name));
} catch (IOException e) {
e.printStackTrace();
System.out.println("IO异常,downloader方法出现问题");
}
}
}
上面代码的网图的URL可以在网页中任意选择;
举例,在网页中右键,选择检查,可以查看网页的代码,然后点击箭头,就可以自动定位图片的URL;
这样就可以获取图片的url了,
通过重写run()方法,然后用这个语句
FileUtils.copyURLToFile(new URL(url),new File(name));
实现图片的下载;
在最后的下载结果可以看到,下载照片的结果并没有按照顺序下载,这就是多线程;