多线程小案例-同步下载多个图片

本文介绍了一个使用Java多线程下载网络图片的案例,包括导入commons-io.jar包,创建下载工具类以及编写测试类实现并发下载。遇到图片防盗链问题时,通过在图片链接前添加https://images.weserv.nl/?url=来解决。
摘要由CSDN通过智能技术生成

多线程小案例—网络图片下载

第一步–下载commons-io.jar包

  • commons-io是针对开发IO流功能的工具类库
    • 百度搜索commons-io即可前往官网下载(或直接点击该链接前往官网下载)
    • 下载地址

第二步–将jar包导入到idea里使用

  • 找到下载的jar包,直接复制到项目中即可,需要先创建一个lib的文件夹存放jar包

  • 接着还需要右键点击lib文件夹,选择Add as Libray即可

  • Add as Library

  • 接着就可以正常使用jar包里的工具类了

第三步–敲代码

  • 先创建一个文件下载工具类

  • //下载工具类
    
    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异常,downloader方法出现问题");
            }
        }
    }
    
    
  • 然后写测试类

  • public class TestThread2 extends Thread{
        private String url;//网络图片地址
        private String name;//保存的文件名
    
        //写一个有参构造
        public TestThread2(String url,String name){
            this.name = name;
            this.url = url;
        }
    
        //下载图片线程的执行体
        @Override
        public void run(){
            WebDownloader webDownloader = new WebDownloader();
            webDownloader.downloader(url,name);
            System.out.println("下载了文件名为"+name);
        }
    
        public static void main(String[] args) {
            //这里填你想要下载的图片链接地址,和你希望下载在什么地方的路径
            TestThread2 t1 = new TestThread2("url1","name1");
            TestThread2 t2 = new TestThread2("url2","name2");
            TestThread2 t3 = new TestThread2("url3","name3");
    
            t1.start();
            t2.start();
            t3.start();
        }
    
    
    }
    
  • 写完这些以后,就可以正常下载图片啦

  • 注意:

    • 有时候可能有的图片网站会有图片的防盗链,可能会出现以下异常

    • 在这里插入图片描述

    • 我去百度了一下,找到了解决方法

    • 在图片链接前面加上https://images.weserv.nl/?url=即可

  • 快去各种壁纸网站试一试!!!!!!!!!!!!!!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值