import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.SocketTimeoutException;
import java.net.URL;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;public class BookChecker { public static void main(final java.lang.String[] args) throws Exception {
BlockingQueue<URL> urls = new LinkedBlockingQueue<URL>();
String [] d=readFileByLines("C:/Documents and Settings/Owner/桌面/xx.txt");
for (int i=1;i<d.length-2;i++){
if(d[i]!=null){
urls.put(new URL(d[i]));
}else{
break;
}
}
for(int i=0;i<100;i++)
new Thread( new CheckURLWorker(Thread.currentThread().getName(),urls)).start();
}
public static String[] readFileByLines(String fileName){
File file = new File(fileName);
String [] kk=new String[50000];
BufferedReader reader = null;
try {
// System.out.println("以行为单位读取文件内容,一次读一整行:");
reader = new BufferedReader(new FileReader(file));
String tempString = null;
int line = 1;
//一次读入一行,直到读入null为文件结束
while ((tempString = reader.readLine()) != null){
//显示行号
// System.out.println("line " + line + ": " + tempString);
kk[line]=tempString;
line++;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null){
try {
reader.close();
} catch (IOException e1) {
}
}
}
return kk;} private static class CheckURLWorker implements Runnable {
private BlockingQueue<URL> queue;
private String name;
public CheckURLWorker(String name,BlockingQueue<URL> q){
this.name = name;
this.queue = q;
} public void run() {
for (URL url = queue.poll(); url != null; url = queue.poll()) {
try{
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
connection.setRequestMethod("GET");
connection.connect();
int code = connection.getResponseCode();
connection.disconnect();
System.out.printf("[%s]%s:%d%n",name,url.toString(),code);
} catch (SocketTimeoutException e) {
System.out.printf("[%s]%s:%d%n",name,url.toString(),-1);
} catch (IOException e) {
System.err.println(e);
}
}
}
}
}运行很慢啊我扫3万个链接要一个小时(网速是一定的原因,我的网速100k不到)
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货