废话不多说了,直接给大家贴代码了,具体代码如下所示;
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
相关文章:
PHP 500报错的快速解决方法
建站之星如何实现PC+手机+微信网站五合一建站?
如何在云主机上快速搭建网站?
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
建站之星安装后界面空白如何解决?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何安全更换建站之星模板并保留数据?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
建站10G流量真的够用吗?如何应对访问高峰?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
设计网站制作公司有哪些,制作网页教程?
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
如何高效配置香港服务器实现快速建站?
如何选择CMS系统实现快速建站与SEO优化?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
小型网站制作HTML,*游戏网站怎么搭建?
制作企业网站建设方案,怎样建设一个公司网站?
如何在自有机房高效搭建专业网站?
已有域名能否直接搭建网站?
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
如何正确选择百度移动适配建站域名?
宿州网站制作公司兴策,安徽省低保查询网站?
如何快速搭建响应式可视化网站?
如何在服务器上三步完成建站并提升流量?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何快速完成中国万网建站详细流程?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何高效利用亚马逊云主机搭建企业网站?
建站之星安装失败:服务器环境不兼容?
怀化网站制作公司,怀化新生儿上户网上办理流程?
南平网站制作公司,2025年南平市事业单位报名时间?
如何确认建站备案号应放置的具体位置?
如何快速搭建高效可靠的建站解决方案?
建站之星多图banner生成与模板自定义指南
广东专业制作网站有哪些,广东省能源集团有限公司官网?
Android使用GridView实现日历的简单功能
如何快速生成ASP一键建站模板并优化安全性?
如何快速查询网站的真实建站时间?
建站之星北京办公室:智能建站系统与小程序生成方案解析
建站之星伪静态规则如何设置?
如何在七牛云存储上搭建网站并设置自定义域名?
移民网站制作流程,怎么看加拿大移民官网?
如何撰写建站申请书?关键要点有哪些?
如何基于云服务器快速搭建个人网站?
如何在阿里云完成域名注册与建站?
网站制作模板下载什么软件,ppt模板免费下载网站?
安徽网站建设与外贸建站服务专业定制方案
*请认真填写需求信息,我们会在24小时内与您取得联系。