HttpURLConnection conn = null;
OutputStream outputStream = null;
InputStream inputStream = null;
try {
String path = r.getParameter("filename");
File fl = new File(path); URL url = new URL(path);
conn = (HttpURLConnection)url.openConnection();
inputStream = conn.getInputStream(); rp.reset();
rp.setHeader("Content-Disposition", "attachment;filename=\""+ fl.getName() + "\"");
rp.setContentType("application/octet-stream");
rp.setContentLength((int)conn.getContentLength());
rp.setHeader("Pragma", "No-cache");
rp.setHeader("Cache-Control", "No-cache");
rp.setDateHeader("Expires", 0); outputStream = new BufferedOutputStream(rp.getOutputStream());
byte[] buffer = new byte[4096];
int len = 0;
while((len = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, len);
}
outputStream.flush();
} catch(Exception e){
e.printStackTrace();
} finally {
if(conn!=null){
conn.disconnect();
}
if(inputStream != null) {
inputStream.close();
}
if(outputStream != null) {
outputStream.close();
}
}

  

JAVA实现网络文件下载的更多相关文章

  1. java 下载网络文件

    1.FileUtils.copyURLToFile实现: import java.io.File; import java.net.URL; import org.apache.commons.io. ...

  2. java下载网络大文件之内存不够的解决办法(包含分片上传分片下载)

    一.背景 2020年11月份的时候,我做过一个项目,涉及到网络文件,比如第三方接口提供一个文件的下载地址,使用java去下载,当时我全部加在到JVM内存里面,话说,单单是80M的下载单线程没问题,但是 ...

  3. 二十三、Java基础--------网络编程

    Java中另一个重要技术就是网络编程了,为了更好的学习web方向的知识,有必要对java之网络编程好好学习,本文将围绕网络编程技术进行分析. 常见的网络协议:UDP.TCP UDP 1. 将数据源和目 ...

  4. JAVA的网络编程

    网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编 ...

  5. Java Socket 网络编程心跳设计概念

    Java Socket 网络编程心跳设计概念   1.一般是用来判断对方(设备,进程或其它网元)是否正常动行,一 般采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经当掉.用于 ...

  6. 20145325张梓靖 实验五 "JAVA的网络编程"

    20145325张梓靖 实验五 "JAVA的网络编程" 实验内容 使用 JVAV语言 进行网络编程 对明文进行加密 设计过程 我完成的是客户端,服务端同伴 20145308刘昊阳 ...

  7. 【转】JAVA之网络编程

    转自:火之光 网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者 ...

  8. JAVA的网络编程【转】

    JAVA的网络编程[转] Posted on 2009-12-03 18:04 火之光 阅读(93441) 评论(20) 编辑 收藏 网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能, ...

  9. 【Socket编程】Java中网络相关API的应用

    Java中网络相关API的应用 一.InetAddress类 InetAddress类用于标识网络上的硬件资源,表示互联网协议(IP)地址. InetAddress类没有构造方法,所以不能直接new出 ...

随机推荐

  1. maven更新项目版本

    mvn versions:set -DnewVersion=1.0.1-SNAPSHOT // 此操作会生成pom备份文件,推荐使用 mvn versions:set -DnewVersion=1.1 ...

  2. Mongodb aggregation 基本操作示例

    MongoDB二个主要的操作:一个是查询,另一个是统计.对于查询而言,主要是find()方法,再配合Filters组合多个查询条件. 对于统计而言,则主要是aggregate操作,比如 group.s ...

  3. SQL行列转置

    今天给公司同事们出了一道例行考试题,要求写一句SQL语句从上面表转换为下面表,经过艰难思索,一个同事做了出来. 小区             总数    A类车 B类车 C类车建业森林半岛     2 ...

  4. 二十五、Linux 进程与信号---exec函数

    25.1 介绍 在用 fork 函数创建子进程后,子进程往往要调用一种 exec 函数以执行另一个程序 当进程调用一种 exec 函数时,该进程完全由新程序代换,替换原有进程的正文,而新程序则从其 m ...

  5. luogu 2480 古代猪文 数论合集(CRT+Lucas+qpow+逆元)

    一句话题意:G 的 sigma d|n  C(n d) 次幂  mod 999911659 (我好辣鸡呀还是不会mathjax) 分析: 1.利用欧拉定理简化模运算 ,将上方幂设为x,则x=原式mod ...

  6. PHP实现流程管理功能

    核心逻辑:流程管理,在各种系统中扮演很重要的地位,可以把设定好的流程放入系统中,规定好几个节点,只要所有节点都通过,就可以通过. 建立四张数据库表: 1.我们首先做一个新建流程页面 flow.php, ...

  7. webpack学习笔记——--save-dev和--save

    --save-dev 是你开发时候依赖的东西,--save 是你发布之后还依赖的东西. dependencies是运行时(发布后)依赖,devDependencies是开发时的依赖 比如,你写 ES6 ...

  8. Ubuntu18.04安装搜狗拼音输入法皮肤透明解决方法

    解决方法: 去搜狗输入法官网下载一个新的皮肤,然后右键用“搜狗输入法”打开,就解决了!!!

  9. mybatis 动态sql 插入报错

    1. 值为null必须制定jdbcType 单条执行的话,可以考虑把值为null的字段去掉 2. 值的类型无法解析 比如oracle.sql.TIMESTAMP类型,需转为java.sql.TIMES ...

  10. mariadb开启远程访问

    安装好mariadb之后,开启防火墙端口,但是还是远程访问,一顿百度之后,找到原因 使MariaDB允许远程访问 确定服务器上的防火墙没有阻止 3306 端口 使用nestat命令查看3306端口状态 ...