java多线程下载web上的资源数据
来源:互联网 发布:手机清除数据后果严重 编辑:程序博客网 时间:2024/05/06 13:24
java多线程下载资源:
package com.example.net;import java.io.File;import java.io.InputStream;import java.io.RandomAccessFile;import java.net.HttpURLConnection;import java.net.URL;public class MulThreadDownload {public static void main(String[] args) throws Exception{String path = "http://192.168.1.105:8080/Web/downloadsetup.exe";URL url = new URL(path);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout(5000);conn.setRequestMethod("GET");if(conn.getResponseCode() == 200){int length = conn.getContentLength();File file = new File(path.substring(path.lastIndexOf("/")+1));//RandomAccessFile accessFile = new RandomAccessFile(file, "rwd");accessFile.setLength(length);accessFile.close();//block为每个线程需要下载的数据量int block = length % 3 ==0 ? length/3:length/3 + 1;//假设开三个线程for(int threadid=0;threadid<3;threadid++){new DownloadThread(threadid,url,block,file).start();}}}/** * 线程分段下载 * @author tdw * */private static class DownloadThread extends Thread{private int threadid;private URL url;private int block;private File file;public DownloadThread(int threadid, URL url, int block, File file) {this.threadid = threadid;this.url = url;this.block = block;this.file = file;}@Overridepublic void run() {int start = threadid*block;int end = (threadid+1)*block-1;try {HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout(5000);conn.setRequestMethod("GET");RandomAccessFile accessFile = new RandomAccessFile(file, "rwd");accessFile.seek(start);conn.setRequestProperty("Range", "bytes="+start+"-"+end);//采用分段下载时,其返回码为206if(conn.getResponseCode() == 206){byte[] buffer = new byte[1024];InputStream inStream = conn.getInputStream();int len = 0;while((len = inStream.read(buffer)) != -1){accessFile.write(buffer, 0, len);}accessFile.close();inStream.close();}System.out.println("第"+threadid+"条线程下载完成.");} catch (Exception e) {e.printStackTrace();}}}}
注:path为待下载资源路径。
0 0
- java多线程下载web上的资源数据
- 多线程下载WEB资源
- JAVA 多线程下载单个资源
- 用JAVA代码实现下载网络上的资源
- Java SE 多线程下载网络上的文件代码+注释
- java多线程-爬电影天堂上的电影下载地址
- Ubuntu上用wget多线程下载大文件资源
- java线程实战:多线程下载(上)
- Java的多线程(上)
- 多线程下载资源
- web下载七牛云上面的图片资源
- java web应用开发常用的资源的下载网站以及知识框架图
- 丰富的遥感数据下载资源
- JAVA多线程下载的实现
- JAVA多线程下载的实现
- java 多线程访问临界资源时的数据安全问题(synchronized)
- Java实现获取Web上所有路径下资源文件的URL地址
- java的多线程机制上
- 智能家居中android系统与监控系统的融合
- 获取系统的图片,音频和视频文件
- linux共享库位置配置(LD_LIBRARY_PATH环境变量 或者 更改/etc/ld.so.conf 或者 使用-R选项)
- Linux笔记_网络编程
- 函数声明和调用
- java多线程下载web上的资源数据
- C# 类的继承
- 大二寒假读书笔记150124
- 高等数学(总结4)
- IOS开源库一览表
- 如何安装在 Ubuntu 上安装Intel hypervisor来加速android 虚拟机
- OpenMP: OpenMP多核编程配置与测试
- hibernate笔记(一)hibernate基本配置
- 第一个hadoop程序开发