今天从网上下载资料,全下载要点开100个页面,每个页面还要点击另存,我一下子犯愁了,咋整呢?

于是草草的干了一堆代码,用多线程批量下载。

[java]
package downjianai;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
[/java]

[java]
import java.net.MalformedURLException;
import java.net.URL;

public class Down {
public static void main(String[] args) throws MalformedURLException, IOException {
//下载的资源共100个,研究发现前99个地址是有规律的,于是创建11组线程,每个线程下载9个MP3刚刚好;
//剩下的1个不规则地址单独下载
for(int i=1;i<12;i++) {
new Thread(new ThreadDown((i-1)*9+1)).start();
}
//单独下载的线程
try {
URL url = new URL("http://listen.putclub.com/resource/mingzhu/jianai/putclub.com_jane100.mp3");
InputStream is = url.openStream();
BufferedInputStream bis = new BufferedInputStream(is);
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\\Users\\tanmingxin\\Desktop\\down\\jane100.mp3"));
byte[] buf = new byte[1024*1024];
int len = 0;
while((len=bis.read(buf))!=-1) {
bos.write(buf, 0, len);
bos.flush();
}
bos.close();
bis.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class ThreadDown implements Runnable {
private int index;
ThreadDown(int index) {
this.index = index;
}
public void run() {
try {
for(int i=index;i<index+9;i++) {
URL url = new URL("http://listen.putclub.com/resource/mingzhu/jianai/putclub.com_jane"+i+".mp3");
InputStream is = url.openStream();
BufferedInputStream bis = new BufferedInputStream(is);
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\\Users\\tanmingxin\\Desktop\\down\\jane"+i+".mp3"));
byte[] buf = new byte[1024*1024];
int len = 0;
while((len=bis.read(buf))!=-1) {
bos.write(buf, 0, len);
bos.flush();
}
bos.close();
bis.close();
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}
[/java]

最后修改:2019 年 02 月 23 日
如果觉得我的文章对你有用,请随意赞赏