2.在类中建立一个下载方法

下载方法需要接收2个变量,一个是url下载地址,一个是name文件名称

3.在下载方法中调用文件操作工具类(FileUtils)

4.try/catch捕获异常并提示异常

| 方法 | 说明 |

| — | — |

| copyURLToFile(URL source, File destination) | 将字节从URL复制source到文件中

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

destination。 |

//下载器

class download{

//下载方法

public void down(String url,String name){

try {

FileUtils.copyURLToFile(new URL(url),new File(name));

} catch (IOException e) {

e.printStackTrace();

System.out.println(“IO异常,download方法出现问题”);

}

}

}

然后创建一个线程类


步骤:

1.创建线程类-多线程下载器,继承Thread

2.定义2个私有变量(url下载地址,name文件名称)

3.创建有参数构造器(用于初始化2个私有变量的值)

4.重写Thread父类的run方法

run方法的方法体内写入要执行的任务,我们的任务就是要下载网图,因为要用到下载器里面的下载方法,所以直接实例化download类,然后调用download类中的down方法,由于down方法需要接受2个String类型的变量(url和name),直接将2个私有变量传入进去,最后给个提示,打印出下载的文件名称。

public class 多线程下载器 extends Thread{

private String url;

private String name;

public 多线程下载器(String url, String name) {

this.url = url;

this.name = name;

}

@Override

public void run() {

download download = new download();

download.down(url,name);

System.out.println(“下载了名为”+name);

}

}

在main方法中创建线程并启动


步骤:

1.创建一个main方法

2.创建3个线程

创建线程的时候要传入参数,目的是调用有参构造器初始化私有变量

这里传入3个图片的地址以及文件的名称

注意文件名称,下载的文件类型要对应好相应的后缀名

多线程下载器 t1=new 多线程下载器(“https://www.baidu.com/favicon.ico”,“百度.ico”);

多线程下载器 t2=new 多线程下载器(“https://www.apple.com/favicon.ico”,“苹果.ico”);

多线程下载器 t3=new 多线程下载器(“https://www.jd.com/favicon.ico”,“京东.ico”);

3.用start开启3个线程

start方法会开启新的线程,并且在新的线程中调用线程类中的run方法

public static void main(String[] args) {

多线程下载器 t1=new 多线程下载器(“https://www.baidu.com/favicon.ico”,“百度.ico”);

多线程下载器 t2=new 多线程下载器(“https://www.apple.com/favicon.ico”,“苹果.ico”);

多线程下载器 t3=new 多线程下载器(“https://www.jd.com/favicon.ico”,“京东.ico”);

t1.start();

t2.start();

t3.start();

}

全部代码:

========================================================================

package 多线程;

import org.apache.commons.io.FileUtils;

import java.io.File;

import java.io.IOException;

import java.net.URL;

public class 多线程下载器 extends Thread{

private String url;

private String name;

public 多线程下载器(String url, String name) {

this.url = url;

this.name = name;

}

@Override

public void run() {

download download = new download();

download.down(url,name);

Java多线程下载网图,java常用的框架和技术相关推荐

  1. Java多线程下载网图

    Java多线程下载网图案例 此案例依赖--文件操作工具类(FileUtils) 使用 apache 的commons-io包下的FileUtilsimportorg.apache.commons.io ...

  2. java多线程下LongAdder、CountDownLatch、CyclicBarrier、Phaser 的用法

    前言 一文读懂java多线程下常用常考的阻塞方法LongAdder.CountDownLatch.CyclicBarrier.Phaser 包含演示代码 高并发模拟,性能比较实例代码 前言 LongA ...

  3. 多线程—如何下载网图

    案例-网图下载 1.导入common-io工具包 commons-io的下载和使用 下载成功后: 将该文件复制到idea的一个包内: 选中lib这个包,点击右键,选择Add as Library,再点 ...

  4. java k线绘制,用Java绘制K线图[Java编程]

    赞助商链接 本文"用Java绘制K线图[Java编程]"是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具 ...

  5. Java多线程系列--“JUC原子类”01之 框架

    2019独角兽企业重金招聘Python工程师标准>>> Java多线程系列--"JUC原子类"01之 框架 根据修改的数据类型,可以将JUC包中的原子操作类可以分 ...

  6. copy所有的java文件到硬盘_将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad...

    listFiles方法接受一个FileFilter对象,这个FileFilter对象就是过虑的策略对象,不同的人提供不同的FileFilter实现,即提供了不同的过滤策略. //将d:\java目录下 ...

  7. 将d:\java目录下的所有.java文件复制到d:\jad 目录下,并将原来文件的扩展名从.java 改为.jad

    package com;import java.io.*; import java.util.ArrayList; import java.util.List; /* 编写一个程序,将d:\java目 ...

  8. 编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad

    package com.hbut.test; import java.io.File; import java.io.FileNotFoundException; import java.io.Fil ...

  9. 把java复制到e_编写一个程序,将e:\java目录下的所有.java文件复制到e:\jad目录下...

    package cn.io.file.demo; import java.io.BufferedReader; import java.io.BufferedWriter; import java.i ...

  10. Java多线程001——一图读懂线程与进程

    本博客 猫叔的博客,转载请申明出处 前言 本系列将由浅入深,学习Java并发多线程. 一图读懂线程与进程 1.一个进程可以包含一个或多个线程.(其实你经常听到"多线程",没有听过& ...

最新文章

  1. [20160321]bvi使用问题2.txt
  2. Android 应用Crash 后自动重启
  3. 做一个项目,平时都用到哪些工具提高效率(上)
  4. 怎么检查python是否安装成功-检查python以及django是否安装配置成功
  5. VMware10 —— 安装CentOS7(图解)
  6. JS----JavaScript中的递归函数
  7. 云原生2.0时代下,DevOps实践如何才能更加高效敏捷?
  8. 我很多文章都有建议大伙不要轻易去创业
  9. P4692 [Ynoi2016]谁的梦
  10. 对抗搜索(Adversarial Games)——Min-max搜索 Aleph-beta剪枝搜索
  11. 121道分布式面试题和答案
  12. 在Ubuntu20.04上安装Nsight Systems
  13. Kettle构建Hadoop ETL实践(一):ETL与Kettle
  14. ir2104s的自举电容_有关IR2104的自举电容和NMOS选择问题.docx
  15. 全微分里dxy是怎么化成xdy+ydx
  16. asp mysql rs.recordcount_asp 中rs.fields.count,rs.recordcount代表什么意思
  17. 【HDU 4699】Editor【栈】
  18. 如何快速获取股票行情接口api的实时行情数据?
  19. apiclod 上传图片_apicloud图片上传
  20. 计网 应用题、计算题 答案详解 总结(已更完)

热门文章

  1. STC8H开发(三): 基于FwLib_STC8的模数转换ADC介绍和演示用例说明
  2. Grafana v8.3.3二进制部署打开异常问题记录
  3. 攻防演练 | RASP让WebShell利用破防了
  4. Appium+python自动化(十三)- 输入中文 - 一次填坑记(超详解)
  5. 吃不胖的20个小秘密
  6. [笛卡尔树 树形DP] ICPC 2016 Hong Kong G. Scaffolding
  7. python的地理开发(1、读取矢量数据<geojson和shp>)
  8. cocos2d-x图片变灰或者变亮
  9. NFT艺术首登佳士得拍场:数字艺术终于“破圈”?
  10. 2019深圳无人机展会的一些总结