于 2005-01-11 11:12

例如有个文件http://127.0.0.1/tester/a.zip

我需要通过程序把它下载到本地来,这个没有问题

但是我想现实一个下载的进度

所以,就必须先知道a.zip的大小

而我又不想两次通过inpustream扫描这个文件(第一次先扫描文件大小,第二次把文件一点点下载到本地来,并在下载过程中计算完成的百分比)

有没有什么方式可以一次就完成我上述的目的呢?

代码如下:

HttpURLConnection httpConnection =

(HttpURLConnection) url.openConnection();

httpConnection.connect();

InputStream is = httpConnection.getInputStream();

BufferedInputStream bis = new BufferedInputStream(is);

//      System.out.println("Start to scan " + url.toString() + "...");

//      byte[] buf1 = new byte[1024];

//      int size1 = 0;

//      int temp1 = 0;

//      while (-1 != (temp1 = bis.read(buf1)))

//      {

// size1 += temp1;

//      }

//      System.out.println(

//        "End to scan " + url.toString() + ", it's length is " + size1);

FileOutputStream fos = new FileOutputStream(file.getAbsolutePath());

System.out.println("Start to download " + url.toString() + "...");

byte[] buf2 = new byte[1024];

int size2 = 0;

while (-1 != (size2 = bis.read(buf2)))

{

System.out.println("Downloading... " + size2);

fos.write(buf2, 0, size2);

}

System.out.println(

"End to download, the file was saved as "

+ file.getAbsolutePath()

+ ".");

fos.close();

bis.close();

httpConnection.disconnect();

java获取http文件大小_Java开发网 - 关于通过HTTPUrlConnection获取一个文件的大小?...相关推荐

  1. java servlet 获取mac地址_Java开发网 - 请教大家几个关于servlet取ip和mac地址的问题~~!...

    //Java获得CPU序列号和网卡Mac地址 /* 利用Runtime call操作系统的命令,具体的命令取决于不同的操作系统,注意不要调用Runtime.getRuntime().exec(Stri ...

  2. java工作流 数据库设计_Java开发网

    于 2007-12-06 16:10 基于JGRAHP的工作流模型设计器 JWFD v0.9 comsci@163.com QQ: 784092877 群:7428804 简介 JDK1.4以上 运行 ...

  3. java操作mysql临时表_Java开发网 - 系统临时表使用问题

    Posted by:hzxl Posted on:2003-08-31 18:14 系统临时表的使用: 在一些程序中,我们需要一些仅仅在程序中使用的临时表,但是程序结束后就不再使用,数据库系统对这些应 ...

  4. java禁止ie后退_Java开发网 - 【讨论】html页面禁用右键,浏览器后退、刷新,以及相应快捷键...

    Posted by:lisliefor Posted on:2006-06-15 21:36 前些天交付一个系统时,客户提出新要求回车等同于Tap键的功能,并能提交表单:禁用鼠标右键:禁用浏览器后退. ...

  5. java缺少方法主体_Java开发网 - 总是报错(缺少方法主体,或声明抽象)

    Posted by:wslss007 Posted on:2005-10-31 12:37 今天我做了一个题目,要求是对一般取款机进行模拟,让用户输入密码1234,就显示密码正确,否则密码错误.程序如 ...

  6. fseek( fp, SEEK_SET, SEEK_END );的作用?以及如何获取一个文件的大小?

    目录         一.fseek(fp,SEEK_SET,SEEK_END);的作用? 1.offset表示文件指针的偏移量 2.whence表示偏移量的基准位置 二.如何获取一个文件的大小 一. ...

  7. java byte转文件大小_java上传文件大小转换(字节转kb/mb/gb)

    /** * 字节转kb/mb/gb * @param size * @return */ public String getPrintSize(long size) { //如果字节数少于1024,则 ...

  8. java根据手机号获取微信信息_Java实现的微信公众号获取微信用户信息示例

    本文实例讲述了Java实现的微信公众号获取微信用户信息.分享给大家供大家参考,具体如下: 注: 这里获取用户信息方式和网页授权获取用户信息方式不同.两个access_token不同,返回的结果也不同. ...

  9. java 读excel 流_Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案...

    原文:https://www.cnblogs.com/cksvsaaa/p/7280261.html 注意:此参考解决方案只是针对xlsx格式的excel文件! 背景 前一段时间遇到一种情况,服务器经 ...

最新文章

  1. 关键短语抽取及使用BERT-CRF的技术实践
  2. 傅立叶变换—FFT(cuda实现)
  3. 【转】关于Apache与Nginx的优势比较
  4. hdu 1116 欧拉回路 并查集 一组字符串能否首尾相连成一个字符串
  5. python接口测试面试题及答案_100道接口测试面试题收好了!【建议收藏】
  6. Ubuntu环境下挂载新硬盘 --硬盘要挂载在某个文件夹下面
  7. 什么是跨域,为什么浏览器会禁止跨域,以及实现跨域的几种方式
  8. 太可怕!儿童智能手表竟成偷窥器,315重锤个人隐私泄露
  9. 基于表单数据的封装,泛型,反射以及使用BeanUtils进行处理
  10. RC延时电路计算方法
  11. IntelliJ IDEA 2020 如何解决Commit: Local Changes Refresh提交Git代码卡住超级慢(已解决)
  12. 201671030119 词频统计软件项目报告
  13. win7重装的那些事儿
  14. python pyecharts 数据可视化 饼状图绘制
  15. 删除文件夹显示找不到该项目,也无法改名、移动等
  16. linux day03 基础知识学习
  17. 安心收纳各种重要物品,不在家也能时刻守护安全,VOC智能保管箱G300上手测评
  18. 浙大美女开源的算法,真有你的
  19. Arduino提高篇22—实时时钟DS1302
  20. s:iterator的用法

热门文章

  1. Linux:查看文件夹大小
  2. 判断是否离开当前页面
  3. 数据分析:Hive、Pig和Impala
  4. Linux Ubuntu搭建git服务器
  5. RHEL6入门系列之三,GNU计划与Linux发行版
  6. Leetcode杯 第三题解答(动态规划)
  7. 第0003 天:论团队分工、成长
  8. c语言速算24源代码,C语言源程序代码-速算24
  9. 黑马博客——详细步骤(五)项目功能的实现之用户信息修改
  10. 剑指offer面试题[17]-合并两个排序的链表