批处理 使用500个线程并发下载远程文件
2012-09-01 12:03
281 查看
工程包文件: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 = "http://192.168.100.15:8080/myweb/001232.mp3";
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;
}
}
说明:借助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 = "http://192.168.100.15:8080/myweb/001232.mp3";
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;
}
}
相关文章推荐
- 使用CURL下载远程文件保存到服务器
- Mac iTerm 2使用rz、sz从远程上传下载文件
- 使用SourceCRT利用sftp从远程主机上传下载文件
- 本地windows机器和远程Linux服务器之间文件传输 -- Xshell 使用sftp 上传下载文件
- 使用4个线程拷贝一个文件,实现断点下载。比如:这个文件500M,分四段下载。
- [Linux][Mac]如何使用SSH登陆远程Linux服务器&使用SCP下载远程终端文件
- 使用批处理文件在FTP服务器 上传下载文件
- 使用ganymed-ssh2-build.jar来操作linux服务器(上传、下载文件,远程创建目录,远程删除文件等等)
- python使用paramiko和SCPClient进行linux远程控制和上传和下载文件
- java使用Linux命令scp从远程服务器上传下载文件
- Windows 使用ssh 远程下载 服务器上的文件和目录
- python脚本使用SFTP下载远程计算机文件
- HttpClient使用之下载远程服务器中的文件(注意目录遍历漏洞)
- [并发并行]_[C/C++]_[使用线程本地存储Thread Local Storage(TLS)调用复制文件接口的案例]
- Windows7中使用Task Scheduler调用WinScp批处理实现上传下载文件
- 经过努力终于实现了远程FTP下载文件到本地的批处理
- 使用PHP脚本下载远程文件
- Mac使用rz、sz远程上传下载文件
- 使用PHP脚本下载远程文件
- 使用TortoiseSVN下载远程SVN文件