多线程下载示例
来源:互联网 发布:淘宝天猫运营外包 编辑:程序博客网 时间:2024/05/21 01:44
java多线程下载示例
多线程下载,如果想要做测试,必须要修改相应的文件路径,打开服务器才可,否则会出现异常。
代码如下:
/**多线程下载**/package com.itjob;import java.io.InputStream;import java.io.RandomAccessFile;import java.net.HttpURLConnection;import java.net.URL;class DownloadThread extends Thread { int start; int end; String path; public DownloadThread(int start, int end, String path) { this.start = start; this.end = end; this.path = path; } public void run() { try { URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5000); conn.setRequestMethod("GET"); conn.setRequestProperty("Range", "bytes=" + start + "-" + end); InputStream is = conn.getInputStream(); System.out.println(Thread.currentThread().getName() + "号线程负责的下载范围:" + start + "---" + end); RandomAccessFile raf = new RandomAccessFile("c:\\aaa\\test.exe", "rw"); raf.seek(start); byte[] b = new byte[1024]; int nRead = 0; while((nRead = is.read(b)) != -1) { raf.write(b, 0, nRead); } System.out.println(Thread.currentThread().getName() + "号线程下载完毕!"); } catch (Exception e) { e.printStackTrace(); } }}public class MulThreadDownload { public static void main(String[] args) { // TODO Auto-generated method stub try { String path = "http://localhost:8080/MyWebServer/qqpcmgr.exe"; URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5000); conn.setRequestMethod("GET"); int length = conn.getContentLength(); System.out.println("资源总长度:" + length); RandomAccessFile raf = new RandomAccessFile("c:\\aaa\\test.exe", "rw"); raf.setLength(length); int blockCount = 3; //总的线程数量 int blockSize = length / blockCount; //每个线性要下载的数据量 for (int i = 1; i <= blockCount; i++) { int start = (i - 1) * blockSize; int end = i * blockSize - 1; if (i == blockCount) { end = length - 1; } new DownloadThread(start, end, path).start(); } raf.close(); } catch (Exception e) { e.printStackTrace(); } }}
阅读全文
1 0
- Java 多线程下载示例
- 多线程下载示例代码
- 多线程下载示例
- java多线程下载的实现示例
- Android多线程断点下载完整示例详解
- 多线程下载基础示例JAVA SE
- Android之——多线程下载示例
- Android多线程断点下载的实现示例
- C#多线程进度条示例源码下载
- libcurl使用多线程下载大文件源码示例!
- curl多线程大批量分片下载大文件源码示例
- Android之——多线程断点续传下载示例
- Android之——多线程断点续传下载示例
- 多线程示例
- 多线程示例
- 多线程示例
- Asp.net 2.0 文件下载[支持多线程, 断点续传功能](示例代码下载)
- Asp.net 2.0 文件下载[支持多线程, 断点续传功能](示例代码下载)
- 二分查找
- Mysql解决中文乱码的问题
- 编译器常量、运行时常量以及静态块执行
- iOS11.1也不安全? 新零日WiFi漏洞被发现
- WEB测试和Aepp测试区别
- 多线程下载示例
- Maze&&Mole
- Ajax页面缓存分析与解决
- 【codevs 6280】玩具谜题
- 【树形dp】战略游戏
- html
- 利用反射获取java类属性并赋值
- 面试经典
- Lua源码揭秘(四)一个不算难的string库扩展