- 浏览: 52425 次
文章分类
- 全部博客 (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 com.cgm.mutithreaddowm;
import java.io.File;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.URL;
public class MutiThreadDowm {
public MutiThreadDowm() throws Exception{
String path="http://localhost:8080/test/up/11.txt";
URL url=new URL(path);
HttpURLConnection con=(HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setDoInput(true);
con.connect();
int code=con.getResponseCode();
if (code==200) {
int sum=con.getContentLength();
String fileName="d:/test/a.txt";
//创建一个空文件
RandomAccessFile file=new RandomAccessFile(new File(fileName), "rw");
file.setLength(sum);
file.close();
System.out.println(sum);
int threadCount=3;
int threadSize=sum/threadCount+(sum%threadCount==0?0:1);
for (int i = 0; i < threadCount; i++) {
int start=i*threadSize;
int end=start+(threadSize-1);
System.out.println("第"+(i+1)+"个线程要下载的值是"+start+"-"+end);
new MutiThread(url, fileName, start, end).start(); //开三个线程下载
}
}
con.disconnect();
}
public static void main(String[] args) throws Exception {
new MutiThreadDowm();
}
}
//线程类
package com.cgm.mutithreaddowm;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.URL;
public class MutiThread extends Thread {
private URL url;
private String fileName;
private int start;
private int end;
/*线程要知道服务文集N的URl
* 写到呢而去
* 从哪儿开始写
* 一共多少字节 数据
*/
public MutiThread(URL url, String fileName, int start, int end) {
//super();
this.url = url;
this.fileName = fileName;
this.start = start;
this.end = end;
}
@Override
public void run() {
HttpURLConnection con;
try {
con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setDoInput(true);
con.setRequestProperty("range", "bytes="+start+"-"+end);
con.connect();
int code=con.getResponseCode();
if (code==206) {
int size=con.getContentLength();
System.out.println(this.getName()+"下载的数据量是"+size);
RandomAccessFile file=new RandomAccessFile(new File(fileName),"rw");
InputStream in=con.getInputStream();
file.seek(start);
byte[] bts=new byte[1024];
int len=0;
while ((len=in.read(bts))!=-1) {
file.write(bts,0,len);
}
file.close();
}
con.disconnect();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
发表评论
-
excel 导出及单元格合并
2014-08-13 16:00 519合并单元格类 public ActionForward do ... -
jsp Select 级联
2014-07-31 08:56 405<%@page import="java.ut ... -
jsp动态生成table并且进行表头表列合并
2014-07-31 08:54 1429<%@page import="java.ut ... -
jsquery解析XMl文件二级联动实现
2014-07-26 21:14 553xml文件 <?xml version="1. ... -
json使用
2014-07-20 12:46 334后台 String json="[{'key' ... -
通过中文转码使用包装类
2014-07-13 22:48 523jsp <%@ page language=" ... -
struts1标签循环里面的判断
2014-07-07 10:21 513<%@ page language="java ... -
自定义标签库循环数组 list map输出
2014-07-07 08:24 910jsp <%@ page language=" ... -
自定义标签库读取list输出
2014-07-06 14:59 358jsp <%@ page language=" ... -
jsp标签循环数字到jsp页面
2014-07-06 13:53 519jsp <%@ page language=" ... -
自定义标签库读取文件
2014-07-06 11:38 380jsp <%@ page language=" ... -
jsp自动标签实现字母转换
2014-07-06 11:35 329jsp <%@ page language=" ... -
jsp自定义标签实现比较两个数值的大小
2014-07-06 11:33 808jsp <%@ page language=" ... -
jstl自定义标签库入门
2014-07-05 10:39 4131.先写java代码 package com.cgm.tldt ... -
jsp调用普通java类实例
2014-07-05 10:10 4201.jsp页面 <%@ page language= ... -
jstl c标签库的使用
2014-07-05 09:27 382<%@ page language="java ... -
HttpURLConnection实现断点下载
2014-07-02 23:35 2099package cn.demo; import java.i ... -
java不依赖浏览器的(HttpUrlConnection)单线程不间断下载
2014-07-02 23:01 536package cn.demo; import java.io ... -
HttpUrlConnection模拟浏览器发送请求
2014-07-02 22:32 514servlet...code package cn.itc ... -
servle+jspt文件下载
2014-07-02 22:22 489jsp code <%@ page language=& ...
相关推荐
Android中的文件多线程下载,支持自定义线程数、断点续传、下载任务的删除,添加等功能。
新鲜出炉的SpringBoot版本的多线程下载文件,可以拿来整合SpringBoot项目或者SSM项目,可直接运行测试!!!
qt多线程下载文件的Demo,支持http协议,支持多任务下载
可以在网页上下载同一文件的分割的多部份
HTTP大文件多线程下载工具,支持断点续传
这是一个在listview或gridview中选项同时分别下载文件的demo。 每个选项进度条分别更新进度。
java多线程下载源代码 java多线程下载源代码
Aandroid 多线程断点续传同时下载多个大文件
android客户端多线程下载文件的一个demo,涉及到SQLite的简单应用,希望能够帮到初学者。
实现文件多线程下载,可以指定下载线程数。可以用于学习
Python 大文件多线程下载 支持断点续传,主要调用了ThreadPool 和 requests,控制线程数量,减少浪费内存资源。
演示了JAVA中的多线程 界面简单 需要请拿去
htp多线程断点下载文件 线程数量并不代表下载的速度喔。
针对操作系统中多线程部分知识开发的一个案例,有助于更好的理解线程
用VB6折腾了很久,很难实现多文件同时下载,虽然也说VB6支持异步操作,但是不能真正的多个文件同时下载,也就是说实现不了真正意义上的多线程同时工作,用Inet控件观察了好久,总是一个一个的下载。无奈之下,只好...
Http多线程下载模块,采用了文件内存映射等技术.本人是在vs2010 + qt5下实现。 qt4下我简单的写了下字符集的处理(未测试),可能会乱码.(qt5和qt4的差别还是有些大,可能要做些小的修改),程序不复杂,不算多,...
java 写的文件多线程 下载程序,很简单,没有界面,突出重点,n年前写的,结合了两个网上的程序写的,希望起到抛砖引玉的作用。
多线程从远程服务器上下载文件,实现远程下载和上传
C#多线程下载文件工具,可添加多任务,带断点续传功能
可以多线程下载文件c++的客户端软件,可以切割文件并传输