博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
批处理 使用500个线程并发下载远程文件
阅读量:7157 次
发布时间:2019-06-29

本文共 1525 字,大约阅读时间需要 5 分钟。

工程包文件:commons-io-1.1.jar、config.properties、download.jar、start.bat

说明:借助Apache Commons IO工具包(commons-io-1.1.jar)来简单实现文件(夹)的复制、移动、删除、获取大小等操作

config.properties 文件内容:

#远程服务器下载url

remoteUrl=http://localhost:8080/test/download/a.mp3
#下载文件保存位置如F:\download
saveFileUrl=F
#并发下载线程数
threadNums=10

start.bat文件内容:

set classpath=download.jar;commons-io-1.1.jar

java FileSave

pause

download.jar 文件主class文件源码: 

import java.io.File;

import java.net.URL;
import java.util.Random;

import org.apache.commons.io.FileUtils;

public class FileSave

{
 static String remoteUrl = "3";
 static String saveFileUrl = "D:/download/";

 public static void main(String[] args)

 {
  for (int i = 0; i < 500; i++)
  {
   new Thread(new myThread(remoteUrl, saveFileUrl)).start();
  }
 }

}

class myThread implements Runnable

{
 int NUM = 1;

 String remoteUrl = "";

 String saveFileUrl = "";

 public myThread(String remoteUrl, String saveFileUrl)

 {
  this.remoteUrl = remoteUrl;
  this.saveFileUrl = saveFileUrl;
 }

 public void run()

 {
  downloadFromUrl(remoteUrl, saveFileUrl);
 }

 /**

  * 文件下载的方法
  */
 public static String downloadFromUrl(String url, String dir)
 {
  String fileName = "";

  try

  {
   URL httpurl = new URL(url);
   String[] us = url.split("/");
   fileName = us[us.length - 1];
   String ramdom = System.currentTimeMillis() + ""
     + new Random().nextInt(100);
   fileName = ramdom + "_" + fileName;
   System.out.println("fileName:" + fileName);
   File f = new File(dir + fileName);
   FileUtils.copyURLToFile(httpurl, f);
  } catch (Exception e)
  {
   e.printStackTrace();
   return "Fault!";
  }

  return fileName;

 }

}

转载地址:http://mohgl.baihongyu.com/

你可能感兴趣的文章
常用的两种web单点登录SSO的实现原理
查看>>
Elasticsearch小结
查看>>
Android开发小技巧之--------继承AppCompatActivity后设置全屏的问题
查看>>
[转]在vmware中安装64位centOS
查看>>
书荐——《微服务设计》(Sam Newman)
查看>>
PHP数组效率去重
查看>>
Google将要推出一个重新设计的Gmail界面
查看>>
yii2中like的查询
查看>>
gnu nano使用
查看>>
jquery给input框添加只读属性
查看>>
Ajax - Ajax, json, google maps api 遍历
查看>>
算法。
查看>>
Flex布局
查看>>
CAS单点登陆proxy代理实现
查看>>
由Android屏幕旋转说起
查看>>
2.3 Java的数组
查看>>
ubuntu 11.10 安装systemtap
查看>>
Django学习笔记(4)---ManyToMany 添加、删除关联、查询
查看>>
ORACLE----sql优化
查看>>
MyBatis3:SQL映射
查看>>