- 浏览: 55600 次
-
文章分类
- 全部博客 (87)
- 模糊查询 (1)
- 树查询 (1)
- 汉字文件编码 (1)
- 图片文件写入网页 (1)
- 网络爬虫 (1)
- 正则表达式实现IP排序 (1)
- javax读取xml (1)
- javax增删改查xml (1)
- java反射 (1)
- dom4j操作XML文件 (1)
- descode函数 (1)
- 用户在线管理 (1)
- oracle统计函数统计各个年份入职的人数 (1)
- js解绑时间和自定义时间 (1)
- extjs 树控件开发 (1)
- java导出excel (1)
- java导入excel... (1)
- 行转列 (1)
- 连接池 (1)
- oracle plsql (0)
- oracle (1)
- oracle存储过程 (5)
- plsql编程 (5)
- oracle触发器 (2)
- oracle知识 (1)
- web技术 (22)
- servle+jspt文件下载 (0)
- wen技术 (0)
- java连接池 (1)
- java基础 (10)
- weblogic (3)
- jstl标签库的使用 实例 (1)
- css技术 (1)
- 存储过程 (1)
- sql统计 (1)
- webservice技术 (5)
- spring框架总结 (1)
- mongoDB (1)
- 64位oracle安装plsql (1)
- mongoDB分组统计 (1)
- ssh 无密码登录 (0)
- mysql (1)
- hadoop (0)
- lucene (1)
最新评论
package cn.demo;
import java.io.File;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.URL;
public class BreakDown {
public static void main(String[] args) throws Exception {
String fileName = "video.avi";
String path = "http://localhost:6666/day22_cos/up/"+fileName;
String savePath = "d:/a/"+fileName;
File file = new File(savePath);
long size = file.length();
System.err.println(file.length());
URL url = new URL(path);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
//设置下载区间
con.setRequestProperty("range","bytes="+size+"-");
con.connect();
int code = con.getResponseCode();//只要断点下载,返回的已经不是200,206
System.err.println(code);
if(code==206){
InputStream in= con.getInputStream();
int serverSize = con.getContentLength();
System.err.println("服务器返回的长度:"+serverSize);
System.err.println("这次从哪开开始写:"+size);
//必须要使用
RandomAccessFile out = new RandomAccessFile(file,"rw");
out.seek(size);
byte[] b = new byte[1024];
int len = -1;
while((len=in.read(b))!=-1){
out.write(b,0,len);
}
out.close();
}
}
}
import java.io.File;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.URL;
public class BreakDown {
public static void main(String[] args) throws Exception {
String fileName = "video.avi";
String path = "http://localhost:6666/day22_cos/up/"+fileName;
String savePath = "d:/a/"+fileName;
File file = new File(savePath);
long size = file.length();
System.err.println(file.length());
URL url = new URL(path);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
//设置下载区间
con.setRequestProperty("range","bytes="+size+"-");
con.connect();
int code = con.getResponseCode();//只要断点下载,返回的已经不是200,206
System.err.println(code);
if(code==206){
InputStream in= con.getInputStream();
int serverSize = con.getContentLength();
System.err.println("服务器返回的长度:"+serverSize);
System.err.println("这次从哪开开始写:"+size);
//必须要使用
RandomAccessFile out = new RandomAccessFile(file,"rw");
out.seek(size);
byte[] b = new byte[1024];
int len = -1;
while((len=in.read(b))!=-1){
out.write(b,0,len);
}
out.close();
}
}
}
发表评论
-
excel 导出及单元格合并
2014-08-13 16:00 617合并单元格类 public ActionForward do ... -
jsp Select 级联
2014-07-31 08:56 426<%@page import="java.ut ... -
jsp动态生成table并且进行表头表列合并
2014-07-31 08:54 1519<%@page import="java.ut ... -
jsquery解析XMl文件二级联动实现
2014-07-26 21:14 575xml文件 <?xml version="1. ... -
json使用
2014-07-20 12:46 375后台 String json="[{'key' ... -
通过中文转码使用包装类
2014-07-13 22:48 545jsp <%@ page language=" ... -
struts1标签循环里面的判断
2014-07-07 10:21 541<%@ page language="java ... -
自定义标签库循环数组 list map输出
2014-07-07 08:24 948jsp <%@ page language=" ... -
自定义标签库读取list输出
2014-07-06 14:59 376jsp <%@ page language=" ... -
jsp标签循环数字到jsp页面
2014-07-06 13:53 543jsp <%@ page language=" ... -
自定义标签库读取文件
2014-07-06 11:38 403jsp <%@ page language=" ... -
jsp自动标签实现字母转换
2014-07-06 11:35 349jsp <%@ page language=" ... -
jsp自定义标签实现比较两个数值的大小
2014-07-06 11:33 859jsp <%@ page language=" ... -
jstl自定义标签库入门
2014-07-05 10:39 4521.先写java代码 package com.cgm.tldt ... -
jsp调用普通java类实例
2014-07-05 10:10 4431.jsp页面 <%@ page language= ... -
jstl c标签库的使用
2014-07-05 09:27 408<%@ page language="java ... -
文件多线程下载
2014-07-04 08:27 619//线程下载类 package com.c ... -
java不依赖浏览器的(HttpUrlConnection)单线程不间断下载
2014-07-02 23:01 566package cn.demo; import java.io ... -
HttpUrlConnection模拟浏览器发送请求
2014-07-02 22:32 540servlet...code package cn.itc ... -
servle+jspt文件下载
2014-07-02 22:22 517jsp code <%@ page language=& ...
相关推荐
本文将详细介绍如何利用HttpURLConnection实现Android应用中的断点续传功能。 首先,理解断点续传的概念。断点续传是指当下载或上传文件过程中因网络问题中断后,可以从上次中断的位置继续进行,而不是重新开始。这...
在Java中,实现断点下载主要涉及到以下几个关键知识点: 1. 文件流操作:Java的`java.io`包提供了多种流类,如`FileInputStream`和`FileOutputStream`,用于读写本地文件。在断点下载中,我们需要使用`...
本教程将详细讲解如何使用HttpURLConnection实现单线程、多线程下载以及多线程续点下载。 **一、单线程下载** 单线程下载是最基础的下载方式,它通过一个连接获取服务器资源并写入本地文件。以下是一个简单的单...
本篇文章主要探讨如何使用`HttpURLConnection`实现Android的断点下载功能,这尤其适用于大文件下载场景。 `HttpURLConnection`是Android系统自带的HTTP请求库,相较于已弃用的`HttpClient`,它提供了更现代、更高效...
在实现断点下载时,我们主要利用它的可设置请求头特性。 1. **获取文件大小**:首先,需要通过HTTP HEAD请求获取远程文件的总大小。这通常通过`Content-Length`响应头字段得到。 2. **检查本地存储**:在开始下载...
在Java中,使用URL实现断点下载可以通过使用HttpURLConnection类来实现。HttpURLConnection类是Java中的一个类,用于发起HTTP请求。下面是一个简单的示例代码: ```java URL ur = new URL(...
首先,源码是实现断点续传下载的核心部分。断点续传技术允许用户中断下载后,从上次停止的地方继续,而无需重新开始。在Android中,这通常涉及到以下几个关键组件和概念: 1. **HttpURLConnection或OkHttp**:在...
Android中可以使用java.nio.channels.FileChannel和java.net.HttpURLConnection实现多线程下载。每个线程负责下载文件的一部分。以下是一个简单的多线程下载类设计: ```java public class DownloadTask extends ...
在Java中,使用HttpURLConnection实现断点续传,首先需要读取本地已下载文件的大小,然后设置请求头的Range字段。当从服务器接收到206 Partial Content的响应码时,说明服务器支持断点续传,客户端可以继续下载未...
4. **断点续传**:实现断点续传功能是为了在用户网络不稳定时避免下载重头开始。这需要保存每次下载的进度,并在下次启动下载时恢复。Android提供了`DownloadManager`系统服务,它可以自动处理网络中断和恢复,支持...
在Android开发中,服务(Service)和通知(Notification)是两个关键组件,它们共同作用于后台任务执行,如实现断点续传的文件下载。断点续传是一种允许用户在中断下载后从上次停止的位置继续下载的技术,尤其适用于...
本示例是专为Android初学者设计的,通过详细的代码注释,旨在帮助开发者快速理解和实现断点下载。 断点下载的核心原理是利用HTTP协议中的Range请求头。当用户开始一个新的下载任务时,服务器会返回一个包含文件总...
本知识点将深入探讨如何使用`HttpURLConnection`与Servlet协同工作,处理多文件参数以及实现断点上传功能。 首先,`HttpURLConnection`是Java API中的一个核心类,它负责提供HTTP协议的连接功能。相比Apache ...
实现断点续传的关键在于保存已下载部分的信息,包括文件的总大小、已下载的字节数以及当前的下载位置。这样,当下载重新开始时,客户端可以根据这些信息向服务器请求从上次中断的地方开始继续传输。 在...
在Java编程中,`HttpURLConnection`是用于处理HTTP协议的核心类,它提供了向网络资源发起...`HttpURLConnection`虽然简洁,但在高级功能上可能需要结合其他库,如OkHttp或Apache HttpClient,以实现更高效的网络通信。
`Content-Range`和`Range`头信息是实现断点续传的关键,客户端需要在请求中指定已下载的范围,服务器根据这些信息返回未下载的部分。 5. **存储与同步**: 下载的每个部分需要在本地临时文件中存储,并在所有部分...
HttpURLConnection是Android内置的API,而OkHttp是一个第三方库,性能更优,支持设置请求头,方便实现断点续传。 3. 请求头:在下载时,需要在HTTP请求头中添加"Range"字段,指定需要下载的文件块范围,如"Range: ...
本实例将探讨如何利用AsyncTask实现断点下载功能,这是一种允许用户在暂停后继续下载大文件的技术,极大地提高了用户体验。 首先,我们需要了解AsyncTask的结构。AsyncTask包含三个泛型参数:Params, Progress, ...
在Android平台上,实现文件的多线程断点下载是一项常见的任务,这有助于提高下载速度并允许用户在中断后继续未完成的下载。以下是一个详细解释这个过程的关键知识点: 1. **HTTP请求与响应**: - HTTP是互联网上...
在本例中,我们将探讨如何利用`AsyncTask`实现断点续传功能。 断点续传是一种文件传输技术,允许用户在文件下载中断后从上次停止的地方继续下载,而不是从头开始。这对于大型文件来说非常有用,因为它节省了用户的...