废话不多说了,直接给大家贴代码了,具体代码如下所示;
package com.github.pandafang.tool;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.FileChannel;
import java.nio.channels.ReadableByteChannel;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import org.apache.commons.io.FileUtils;
/**
* 文件工具类
* @author panda fang
* @date 2017-08-26
* @version 1.0
*/
public class FileTool {
/**
* 使用传统io stream 下载文件
* @param url
* @param saveDir
* @param fileName
*/
public static void download(String url, String saveDir, String fileName) {
BufferedOutputStream bos = null;
InputStream is = null;
try {
byte[] buff = new byte[8192];
is = new URL(url).openStream();
File file = new File(saveDir, fileName);
file.getParentFile().mkdirs();
bos = new BufferedOutputStream(new FileOutputStream(file));
int count = 0;
while ( (count = is.read(buff)) != -1) {
bos.write(buff, 0, count);
}
}
catch (IOException e) {
e.printStackTrace();
}
finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 利用 commonio 库下载文件,依赖Apache Common IO ,官网 https://commons.apache.org/proper/commons-io/
* @param url
* @param saveDir
* @param fileName
*/
public static void downloadByApacheCommonIO(String url, String saveDir, String fileName) {
try {
FileUtils.copyURLToFile(new URL(url), new File(saveDir, fileName));
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 使用NIO下载文件, 需要 jdk 1.4+
* @param url
* @param saveDir
* @param fileName
*/
public static void downloadByNIO(String url, String saveDir, String fileName) {
ReadableByteChannel rbc = null;
FileOutputStream fos = null;
FileChannel foutc = null;
try {
rbc = Channels.newChannel(new URL(url).openStream());
File file = new File(saveDir, fileName);
file.getParentFile().mkdirs();
fos = new FileOutputStream(file);
foutc = fos.getChannel();
foutc.transferFrom(rbc, 0, Long.MAX_VALUE);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (rbc != null) {
try {
rbc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (foutc != null) {
try {
foutc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 使用NIO下载文件, 需要 jdk 1.7+
* @param url
* @param saveDir
* @param fileName
*/
public static void downloadByNIO2(String url, String saveDir, String fileName) {
try (InputStream ins = new URL(url).openStream()) {
Path target = Paths.get(saveDir, fileName);
Files.createDirectories(target.getParent());
Files.copy(ins, target, StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
e.printStackTrace();
}
}
}
下载一个百度logo 测试一下
public static void main(String[] args) {
FileTool.downloadByNIO2("http://www.baidu.com/img/bd_logo1.png", "/home/panda/picture", "baidu_logo.png");
System.out.println("done...");
}
总结
以上所述是小编给大家介绍的Java 从网上下载文件的几种方式实例代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# java
# 下载文件
# Java Spring MVC 上传下载文件配置及controller方法详解
# JAVA技术实现上传下载文件到FTP服务器(完整)
# Java通过FTP服务器上传下载文件的方法
# java操作ftp下载文件示例
# Java下载文件时文件名乱码问题解决办法
# 使用java实现http多线程断点下载文件(二)
# 使用java实现http多线程断点下载文件(一)
# 给大家
# 小编
# 在此
# 说了
# 不多
# 几种
# 所示
# 所述
# 给我留言
# 官网
# 感谢大家
# 测试一下
# 疑问请
# 有任何
# 网上
# version
# fang
# public
# FileUtils
# commons
相关文章:
如何配置WinSCP新建站点的密钥验证步骤?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
金*站制作公司有哪些,金华教育集团官网?
内部网站制作流程,如何建立公司内部网站?
建站上传速度慢?如何优化加速网站加载效率?
建站主机解析:虚拟主机配置与服务器选择指南
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何通过万网虚拟主机快速搭建网站?
如何用5美元大硬盘VPS安全高效搭建个人网站?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
建站之星安装提示数据库无法连接如何解决?
建站之星收费标准详解:套餐费用及年费价格表一览
详解jQuery中基本的动画方法
,sp开头的版面叫什么?
微信小程序 input输入框控件详解及实例(多种示例)
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
公司网站设计制作厂家,怎么创建自己的一个网站?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
建站之星如何保障用户数据免受黑客入侵?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
如何在Golang中使用replace替换模块_指定本地或远程路径
如何在万网自助建站中设置域名及备案?
如何在阿里云虚拟主机上快速搭建个人网站?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
网站图片在线制作软件,怎么在图片上做链接?
孙琪峥织梦建站教程如何优化数据库安全?
如何在建站主机中优化服务器配置?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
个人摄影网站制作流程,摄影爱好者都去什么网站?
c# 在ASP.NET Core中管理和取消后台任务
网站制作话术技巧,网站推广做的好怎么话术?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
网站制作的步骤包括,正确网址格式怎么写?
建站之星备案是否影响网站上线时间?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
定制建站策划方案_专业建站与网站建设方案一站式指南
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
高防服务器:AI智能防御DDoS攻击与数据安全保障
如何在万网主机上快速搭建网站?
如何快速搭建高效WAP手机网站吸引移动用户?
家庭建站与云服务器建站,如何选择更优?
建站10G流量真的够用吗?如何应对访问高峰?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
定制建站流程步骤详解:一站式方案设计与开发指南
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
西安专业网站制作公司有哪些,陕西省建行官方网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。