多线程之”网图下载“,通过多线程去下载图片


第一引用IO包:IO包 Commons 针对开发IO流功能的工具类库,网上下载

第二使用FileUtils文件工具,复制URl到文件

IDEA引入架包后不能直接用,需要右键找到Add as Library,把他添加到类库中
package Threads;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
//练习Thread,实现多线程同步下载图片
public class Mylt extends Thread {
    //创建变量
    private String url;
    private String name;
    
    public Mylt(){}
    public Mylt(String url, String name){
        this.url=url;
        this.name=name;
        
    }
    //线程体:下载图片线程的执行体
    public void run(){
        WebDownloader webDownloader=new WebDownloader();
        //调用下载器中的方法
        webDownloader.downloader(url,name);
        System.out.println("下载了文件名为:"+name);
    }
    public static void main(String []args){
        Mylt t1=new Mylt("https://img01.sogoucdn.com/app/a/100520021/3b453574cfbfd216bc9e22b7aedb75a3","01.jpg");
        Mylt t2=new Mylt("https://img01.sogoucdn.com/app/a/100520021/3b453574cfbfd216bc9e22b7aedb75a3","02.jpg");
        Mylt t3=new Mylt("https://img01.sogoucdn.com/app/a/100520021/3b453574cfbfd216bc9e22b7aedb75a3","03.jpg");

        //启动线程:由cpu调度来选择那个线程先执行
        t1.start();
         t2.start();
          t3.start();
        
    }
    
    
    
}
//下载器
class WebDownloader{
    //下载方法
    public void downloader(String url,String name){
       try{
        //copyURLToFile:把网上的文件地址,变成一个文件,new URL(url):添加一个网络路径,new File(name):添加一个文件路径
        FileUtils.copyURLToFile(new URL(url),new File(name));
       }catch(IOException e){
           e.printStackTrace();
           System.out.println("IO异常,downloader出现问题");
       }

    }
}
 

相关