用java的URL实现了一个简单的断点续传的列子,不为别的,假如你对断点续传不了解一看就明白了呵呵,算不上高深啊

package test;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.io.RandomAccessFile;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLConnection;

/* @className:TestDown.java

* @classDescription: 简单的java断点续传

* @author:jiangmianyue

* @createTime:2011-11-29

*/

public class TestDown {

public static void main(String[] args) {

URL url = null;

try {

url = new URL("http://172.16.1.33/newfile/e358beb5367341929614332e1a390dfb.apk");

} catch (MalformedURLException e) {

e.printStackTrace();

}

URLConnection httpConnection = null;

try {

// 建立连接

httpConnection = url.openConnection();

} catch (IOException e) {

e.printStackTrace();

}

// 设置ua

httpConnection.setRequestProperty("User-Agent","NetFox");

// 设置断点续传的开始位置 从100k开始

httpConnection.setRequestProperty("RANGE","bytes=102400-");

// 获得输入流

InputStream input = null;

try {

input = httpConnection.getInputStream();

} catch (IOException e) {

e.printStackTrace();

}

// 可以从多少字节开始写的文件类

RandomAccessFile oSavedFile = null;

try {

oSavedFile = new RandomAccessFile("d://down.apk","rw");

} catch (FileNotFoundException e) {

e.printStackTrace();

}

// 从第100K开始写

long nPos = 102400;

// 定位文件指针到 nPos 位置

try {

// 文件指针移动到那个位置

oSavedFile.seek(nPos);

} catch (IOException e) {

e.printStackTrace();

}

byte[] b = new byte[1024];

int nRead;

// 从输入流中读入字节流,然后写到文件中

try {

// int n =0;

while((nRead=input.read(b,0,1024)) > 0)

{

oSavedFile.write(b,0,nRead);

/**

* 第一次的时设置n的值到100的时候断开

* if(100 == n){

* break;

* }

*/

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

// 下面是一些请求头信息可以根据需要添加

private static void setHeader(URLConnection con) {

con.setRequestProperty("User-Agent", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092510 Ubuntu/8.04 (hardy) Firefox/3.0.3");

con.setRequestProperty("Accept-Language", "en-us,en;q=0.7,zh-cn;q=0.3");

con.setRequestProperty("Accept-Encoding", "aa");

con.setRequestProperty("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");

con.setRequestProperty("Keep-Alive", "300");

con.setRequestProperty("Connection", "keep-alive");

con.setRequestProperty("If-Modified-Since", "Fri, 02 Jan 2009 17:00:05 GMT");

con.setRequestProperty("If-None-Match", "\"1261d8-4290-df64d224\"");

con.setRequestProperty("Cache-Control", "max-age=0");

con.setRequestProperty("Referer", "http://www.dianping.com");

}

}

0

1

分享到:

2011-11-29 18:56

浏览 2817

评论

java断点续传 框架_java实现断点续传相关推荐

  1. java权限框架_Java高级工程师必备技术栈-由浅入深掌握Shiro权限框架

    权限系统在任何一个系统中都存在,随着分布式系统的大行其道,权限系统也趋向服务化,对于一个高级工程师来说,权限系统的设计是必不可少需要掌握的技术栈 Apache Shiro™是一个功能强大且易于使用的J ...

  2. java 媒体框架_Java 媒体框架 之 JMF

    如果想要使用Java中的Swing播放音乐,视频,包括录音,截取录像等等,就要用到Java的媒体框架JMF. Java媒体框架(JMF)使你能够编写出功能强大的多媒体程序,却不用关心底层复杂的实现细节 ...

  3. java 简单 框架_java简单框架设计

    设计框架包可以作为一个工具给大家用,需要有完全不同设计思路给出来,不同于我们去做一个web服务.网站. 或者一个业务微服务,需要从原来使用视角转换成一个构建者视角. 框架或者工具,更多是框架来管理或者 ...

  4. java 分布式计算框架_java分布式系统框架的分类

    鲁班学院java架构师成长路线 随着电商行业的崛起,越来越多的人为了省事更习惯网购,今天我们就来熟悉Java分布式系统中的Dubbo,Dubbo就是来解决Java分布式系统中间的子系统之间相互调用相互 ...

  5. java断点续传原理_java 文件断点续传实现原理

    关键字: RandomAccessFile 一.作用: 随机流(RandomAccessFile)不属于IO流,支持对文件的读取和写入随机访问. 二.随机访问文件原理: 首先把随机访问的文件对象看作存 ...

  6. java struts 框架_java struts 框架编程

    Struts: Struts 是一个java编程的框架,它是基于MVC模式为基础的.它灵活地运用jsp和servlet技术.它是一个插件,是别人已经事先编写好的.我们只使用它的框架来设计编程,这很好的 ...

  7. java 反射 框架_Java 反射,开发框架必备技能

    通过反射技术我们将上面的统一资源定位付(URL) 映射到Class 相当于 class: news method: list parameter: 2 差不多就是下面样子 class News{ pu ...

  8. java 定时器框架_java定时器

    java定时器 什么是Java定时器? Java 定时器就是在给定的间隔时间执行自己的任务; Java实现定时器有以下几种: 通过Timer来实现定时任务 Timer 是来自 java.util.Ti ...

  9. java 调度框架_java调度框架Quartz(一)

    前段时间项目中使用到了quartz这个调度框架,最近有时间正好可以做一总结,现在使用的主要是两个版本,一个就是2.0以下版本,还要一个就是2.0以上今天咱们从quartz的本地启动-->quar ...

最新文章

  1. 如何优雅的关闭容器,看这一篇就够了
  2. 九州云陈沙克:OpenStack的成功源于自身的开放
  3. windows 10 扩大C盘空间
  4. ASP.Net MVC的学习
  5. boost::regex模块部分正则表达式迭代相关的测试程序
  6. Linux设备驱动之mmap设备操作
  7. 前端学习(600):使用chorme devtools进行开发
  8. ATL(COM) 开发下 -- VS2010
  9. Eclipse Memory Analyzer(MAT) 使用总结
  10. JavaScript中解决Microsoft.XMLHTTP乱码的最简单方法
  11. DOS命令学习(从入门到精通)
  12. 用循环写出九九乘法表格。
  13. VHDL实验二::半加器、一位和四位全加器(绘制原理图)
  14. python extractor_Python Extractor for Python Editor 1.2
  15. 国民岳父的“屁民理论”
  16. 计算机二级vbf资源百度云,2018年计算机二级考试考前冲刺卷
  17. APP设计:(一)app界面常用设计规范
  18. 荣耀8一下显示无服务器,买到荣耀手机后,不打开这七个功能你就亏了!
  19. MATLAB 基础与通信系统仿真
  20. Windows系统介绍

热门文章

  1. alibaba面试题
  2. BCH升级新版本,实不相瞒该抄底了
  3. 看一下操作闪电网络最大的节点是什么感觉
  4. nChain首席科学家CSW:闪电网络会把BCE变成空洞的幽灵
  5. java 关键字final static
  6. 大数据的“近因偏差”烦恼
  7. highcharts图表组件常见问题:highcharts图表组件错误集合分析大放送
  8. ID--HANDLE--HWND三者之间的互相转换
  9. CComboBox 置空
  10. iSCSI故障查询列表