04 网图下载

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("https://img2023.cnblogs.com/blog/3071897/202308/3071897-20230826185623575-972599911.png", "p1.jpg");
        Test04 p2 = new Test04("https://img2023.cnblogs.com/blog/3071897/202308/3071897-20230826234005264-1093560945.png", "p2.jpg");
        Test04 p3 = new Test04("https://img2023.cnblogs.com/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方法时,可以通过类来调用
    }
}
posted @   被占用的小海海  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示