java【多线程】之同步下载图片

准备阶段:

首先需要在项目中导入一个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));

实现图片的下载;

在最后的下载结果可以看到,下载照片的结果并没有按照顺序下载,这就是多线程;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序yan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值