Java多线程下载网图,java常用的框架和技术
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常用的框架和技术相关推荐
- Java多线程下载网图
Java多线程下载网图案例 此案例依赖--文件操作工具类(FileUtils) 使用 apache 的commons-io包下的FileUtilsimportorg.apache.commons.io ...
- java多线程下LongAdder、CountDownLatch、CyclicBarrier、Phaser 的用法
前言 一文读懂java多线程下常用常考的阻塞方法LongAdder.CountDownLatch.CyclicBarrier.Phaser 包含演示代码 高并发模拟,性能比较实例代码 前言 LongA ...
- 多线程—如何下载网图
案例-网图下载 1.导入common-io工具包 commons-io的下载和使用 下载成功后: 将该文件复制到idea的一个包内: 选中lib这个包,点击右键,选择Add as Library,再点 ...
- java k线绘制,用Java绘制K线图[Java编程]
赞助商链接 本文"用Java绘制K线图[Java编程]"是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具 ...
- Java多线程系列--“JUC原子类”01之 框架
2019独角兽企业重金招聘Python工程师标准>>> Java多线程系列--"JUC原子类"01之 框架 根据修改的数据类型,可以将JUC包中的原子操作类可以分 ...
- copy所有的java文件到硬盘_将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad...
listFiles方法接受一个FileFilter对象,这个FileFilter对象就是过虑的策略对象,不同的人提供不同的FileFilter实现,即提供了不同的过滤策略. //将d:\java目录下 ...
- 将d:\java目录下的所有.java文件复制到d:\jad 目录下,并将原来文件的扩展名从.java 改为.jad
package com;import java.io.*; import java.util.ArrayList; import java.util.List; /* 编写一个程序,将d:\java目 ...
- 编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad
package com.hbut.test; import java.io.File; import java.io.FileNotFoundException; import java.io.Fil ...
- 把java复制到e_编写一个程序,将e:\java目录下的所有.java文件复制到e:\jad目录下...
package cn.io.file.demo; import java.io.BufferedReader; import java.io.BufferedWriter; import java.i ...
- Java多线程001——一图读懂线程与进程
本博客 猫叔的博客,转载请申明出处 前言 本系列将由浅入深,学习Java并发多线程. 一图读懂线程与进程 1.一个进程可以包含一个或多个线程.(其实你经常听到"多线程",没有听过& ...
最新文章
- [20160321]bvi使用问题2.txt
- Android 应用Crash 后自动重启
- 做一个项目,平时都用到哪些工具提高效率(上)
- 怎么检查python是否安装成功-检查python以及django是否安装配置成功
- VMware10 —— 安装CentOS7(图解)
- JS----JavaScript中的递归函数
- 云原生2.0时代下,DevOps实践如何才能更加高效敏捷?
- 我很多文章都有建议大伙不要轻易去创业
- P4692 [Ynoi2016]谁的梦
- 对抗搜索(Adversarial Games)——Min-max搜索 Aleph-beta剪枝搜索
- 121道分布式面试题和答案
- 在Ubuntu20.04上安装Nsight Systems
- Kettle构建Hadoop ETL实践(一):ETL与Kettle
- ir2104s的自举电容_有关IR2104的自举电容和NMOS选择问题.docx
- 全微分里dxy是怎么化成xdy+ydx
- asp mysql rs.recordcount_asp 中rs.fields.count,rs.recordcount代表什么意思
- 【HDU 4699】Editor【栈】
- 如何快速获取股票行情接口api的实时行情数据?
- apiclod 上传图片_apicloud图片上传
- 计网 应用题、计算题 答案详解 总结(已更完)
热门文章
- STC8H开发(三): 基于FwLib_STC8的模数转换ADC介绍和演示用例说明
- Grafana v8.3.3二进制部署打开异常问题记录
- 攻防演练 | RASP让WebShell利用破防了
- Appium+python自动化(十三)- 输入中文 - 一次填坑记(超详解)
- 吃不胖的20个小秘密
- [笛卡尔树 树形DP] ICPC 2016 Hong Kong G. Scaffolding
- python的地理开发(1、读取矢量数据<geojson和shp>)
- cocos2d-x图片变灰或者变亮
- NFT艺术首登佳士得拍场:数字艺术终于“破圈”?
- 2019深圳无人机展会的一些总结