- 浏览: 55585 次
-
文章分类
- 全部博客 (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 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 540<%@ page language="java ... -
自定义标签库循环数组 list map输出
2014-07-07 08:24 948jsp <%@ page language=" ... -
自定义标签库读取list输出
2014-07-06 14:59 374jsp <%@ page language=" ... -
jsp标签循环数字到jsp页面
2014-07-06 13:53 542jsp <%@ page language=" ... -
自定义标签库读取文件
2014-07-06 11:38 402jsp <%@ page language=" ... -
jsp自动标签实现字母转换
2014-07-06 11:35 348jsp <%@ page language=" ... -
jsp自定义标签实现比较两个数值的大小
2014-07-06 11:33 859jsp <%@ page language=" ... -
jstl自定义标签库入门
2014-07-05 10:39 4501.先写java代码 package com.cgm.tldt ... -
jsp调用普通java类实例
2014-07-05 10:10 4421.jsp页面 <%@ page language= ... -
jstl c标签库的使用
2014-07-05 09:27 408<%@ page language="java ... -
HttpURLConnection实现断点下载
2014-07-02 23:35 2142package cn.demo; import java.i ... -
java不依赖浏览器的(HttpUrlConnection)单线程不间断下载
2014-07-02 23:01 564package 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=& ...
相关推荐
在Android开发中,文件下载是一项常见的任务,尤其是对于大型应用或者资源更新,多线程下载技术则显得尤为重要。本文将详细解析如何在Android环境中实现文件的多线程下载,包括自定义线程数、断点续传以及下载任务的...
多线程下载的基本思路是将大文件分割成若干小块,每个线程负责下载其中的一块,最后再合并成完整的文件。 断点续传功能是通过保存下载进度来实现的。在下载过程中,工具会记录已下载的部分,当下载中断时,保存的...
在Android开发中,多线程下载文件是一种常见的需求,尤其对于大文件,它可以显著提高下载速度,提升用户体验。本示例“android文件多线程下载demo”旨在展示如何实现这一功能,同时也涉及到SQLite数据库的简单应用,...
此外,文件存储也是多线程下载的一个关键部分。Android提供了File、FileOutputStream等类来处理本地文件操作。通常,下载的文件会被保存到外部存储(SD卡)或者内部存储的特定目录下,确保数据的持久化。 为了协调...
本篇将深入探讨如何利用SpringBoot实现多线程下载文件以及分段下载文件的技术。 首先,多线程下载文件是一种提高下载速度的方法,通过将大文件分成多个小部分,每个部分由一个单独的线程负责下载,从而充分利用多核...
在多线程下载中,每个文件的下载任务可以放在一个单独的QThread中执行,这样可以避免因为单个下载任务阻塞主线程而影响用户界面的响应速度。 2. **QNetworkAccessManager**:这是Qt提供的网络访问管理器,可以发起...
根据描述中的内容,使用VB6实现多文件同时下载时遇到了困难,主要表现在无法实现真正意义上的多线程下载。 #### VB.NET的优势 相比于VB6,VB.NET提供了更为强大的多线程支持和面向对象编程特性,使得开发人员能够更...
在Android开发中,多线程、断点续传和同时下载多个大文件是优化用户体验和提高应用程序性能的关键技术。下面将详细阐述这些知识点,并提供如何实现的指导。 **多线程** 多线程是Android应用中处理耗时操作的重要...
可以在网页上下载同一文件的分割的多部份
Java多线程下载技术主要应用于提高大文件下载的效率,通过将文件分割成多个部分,同时启动多个线程分别下载这些部分,从而实现并行下载,加快下载速度。以下是对这个主题的详细解释: 1. **Java多线程基础**: 在...
Python文件多线程下载工具是一种高效且灵活的解决方案,尤其适用于处理大文件的下载任务。在互联网上,尤其是在处理大量数据或大型文件时,多线程技术能够显著提高下载速度,因为它可以同时从服务器获取多个数据块,...
Java多线程下载是利用Java编程语言实现的一种高效下载大文件的技术。在传统的单线程下载方式中,如果网络环境不稳定或文件较大,下载过程可能会很慢,甚至中断。而多线程下载则是将文件分割成多个部分,每个部分由一...
本文将深入探讨如何在C#中实现多线程下载文件,涉及的知识点包括线程池、异步编程、进度更新以及错误处理。 首先,我们需要了解线程的基本概念。在C#中,线程是程序执行的独立路径,每个线程都有自己的调用堆栈,...
在C# Winform应用中实现多线程下载是一项常见的任务,尤其在处理大文件或需要提高下载速度的情况下。本文将详细讲解如何利用C#的多线程技术来创建一个Winform应用程序,实现高效的文件下载功能。 首先,我们需要...
在本案例中,我们将探讨如何使用Java实现文件的多线程下载,这对于处理大文件或者在网络带宽有限的情况下尤其有用。通过多线程下载,可以将文件分割成多个部分并同时下载,从而缩短整体下载时间。 首先,我们需要...
在IT领域,网络数据传输是不可或缺的一部分,而断点续传和多线程下载技术则大大提升了文件下载的效率和用户体验。"htp多线程断点下载文件"这一主题,涉及了网络编程、多线程技术和文件处理等多个知识点。 首先,...
此外,还有一些库和框架,如Java的Apache HttpClient或Python的requests库,它们已经封装了网络通信的部分,简化了多线程下载和上传的实现。 总的来说,多线程从远程服务器上下载文件是一项提升性能的技术,它充分...
在C#编程中,多线程大文件下载是一种常见的优化技术,它允许程序同时从服务器获取数据,提高文件下载速度,特别是在处理大文件时效果...通过上述知识点的组合,可以构建出一个高效、用户友好的大文件多线程下载工具。
在多线程下载场景中,我们通常会为每个下载任务创建一个独立的线程,以便并发执行多个请求,提高下载效率。 下面,我们将逐步解析实现`C# httpwebrequest 多线程下载类`的关键步骤: 1. **创建下载类**:首先,...
在本项目中,“易语言多线程下载不卡速度快”是一个利用易语言实现的多线程下载工具,旨在提供高效、稳定的文件下载体验。通过多线程技术,该工具能够同时处理多个下载链接,使得下载过程更加流畅,减少因单一线程...