java断点续传 框架_java实现断点续传
用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实现断点续传相关推荐
- java权限框架_Java高级工程师必备技术栈-由浅入深掌握Shiro权限框架
权限系统在任何一个系统中都存在,随着分布式系统的大行其道,权限系统也趋向服务化,对于一个高级工程师来说,权限系统的设计是必不可少需要掌握的技术栈 Apache Shiro™是一个功能强大且易于使用的J ...
- java 媒体框架_Java 媒体框架 之 JMF
如果想要使用Java中的Swing播放音乐,视频,包括录音,截取录像等等,就要用到Java的媒体框架JMF. Java媒体框架(JMF)使你能够编写出功能强大的多媒体程序,却不用关心底层复杂的实现细节 ...
- java 简单 框架_java简单框架设计
设计框架包可以作为一个工具给大家用,需要有完全不同设计思路给出来,不同于我们去做一个web服务.网站. 或者一个业务微服务,需要从原来使用视角转换成一个构建者视角. 框架或者工具,更多是框架来管理或者 ...
- java 分布式计算框架_java分布式系统框架的分类
鲁班学院java架构师成长路线 随着电商行业的崛起,越来越多的人为了省事更习惯网购,今天我们就来熟悉Java分布式系统中的Dubbo,Dubbo就是来解决Java分布式系统中间的子系统之间相互调用相互 ...
- java断点续传原理_java 文件断点续传实现原理
关键字: RandomAccessFile 一.作用: 随机流(RandomAccessFile)不属于IO流,支持对文件的读取和写入随机访问. 二.随机访问文件原理: 首先把随机访问的文件对象看作存 ...
- java struts 框架_java struts 框架编程
Struts: Struts 是一个java编程的框架,它是基于MVC模式为基础的.它灵活地运用jsp和servlet技术.它是一个插件,是别人已经事先编写好的.我们只使用它的框架来设计编程,这很好的 ...
- java 反射 框架_Java 反射,开发框架必备技能
通过反射技术我们将上面的统一资源定位付(URL) 映射到Class 相当于 class: news method: list parameter: 2 差不多就是下面样子 class News{ pu ...
- java 定时器框架_java定时器
java定时器 什么是Java定时器? Java 定时器就是在给定的间隔时间执行自己的任务; Java实现定时器有以下几种: 通过Timer来实现定时任务 Timer 是来自 java.util.Ti ...
- java 调度框架_java调度框架Quartz(一)
前段时间项目中使用到了quartz这个调度框架,最近有时间正好可以做一总结,现在使用的主要是两个版本,一个就是2.0以下版本,还要一个就是2.0以上今天咱们从quartz的本地启动-->quar ...
最新文章
- 如何优雅的关闭容器,看这一篇就够了
- 九州云陈沙克:OpenStack的成功源于自身的开放
- windows 10 扩大C盘空间
- ASP.Net MVC的学习
- boost::regex模块部分正则表达式迭代相关的测试程序
- Linux设备驱动之mmap设备操作
- 前端学习(600):使用chorme devtools进行开发
- ATL(COM) 开发下 -- VS2010
- Eclipse Memory Analyzer(MAT) 使用总结
- JavaScript中解决Microsoft.XMLHTTP乱码的最简单方法
- DOS命令学习(从入门到精通)
- 用循环写出九九乘法表格。
- VHDL实验二::半加器、一位和四位全加器(绘制原理图)
- python extractor_Python Extractor for Python Editor 1.2
- 国民岳父的“屁民理论”
- 计算机二级vbf资源百度云,2018年计算机二级考试考前冲刺卷
- APP设计:(一)app界面常用设计规范
- 荣耀8一下显示无服务器,买到荣耀手机后,不打开这七个功能你就亏了!
- MATLAB 基础与通信系统仿真
- Windows系统介绍