下载回来怎么也得读取内容:
package com.core.crawl;
import java.io.IOException;
import com.util.file.Files;
public class Crawl {
/**
* @param args
* @throws IOException
* @throws InterruptedException
*/
public static void main(String[] args) throws IOException, InterruptedException {
long begin = System.currentTimeMillis();
//WebSpider spider2 = new WebSpider();
WebSpider spider1 = new WebSpider();
spider1.setWebAddress("http://www.w3c.org/robots.txt");
spider1.setDestFile(Files.getSysPath() + "/"+"robots.");
//spider2.setWebAddress("http://blog.csdn.net/longronglin");
//spider2.setDestFile(Files.getSysPath() + "/"+"spider2.");
Thread t1 = new Thread(spider1);
//Thread t2 = new Thread(spider2);
t1.start();
//t2.start();
t1.join();
//t2.join();
System.out.println("the end");
System.out.println(System.currentTimeMillis() - begin);
}
}
package com.core.crawl;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import com.core.http.Http;
public class WebSpider implements Runnable{
private Http http = new Http();
private String webAddress = "";
private String destFile = "";
public void setWebAddress(String webAddress){
this.webAddress = webAddress;
}
public void setDestFile (String destFile){
this.destFile = destFile;
}
public boolean download() throws IOException, InterruptedException {
HttpURLConnection httpConn = null;
try {
URL url = new URL(webAddress);
httpConn = (HttpURLConnection) url.openConnection();
httpConn.setRequestMethod("GET");
httpConn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14");
InputStream in = httpConn.getInputStream();
String fileType = http.fileType(httpConn.getContentType());
System.out.println(fileType);
FileOutputStream out = new FileOutputStream(new File(destFile + fileType));
int chByte = in.read();
BufferedReader bf = new BufferedReader(new InputStreamReader(in));
String result = null;
while ((result = bf.readLine()) != null) {
System.out.println(result);
}
// while (chByte != -1) {
//out.write(chByte);
//
//System.out.println(chByte);
//chByte = in.read();
// }
} catch (Exception ex) {
System.out.println(ex.toString());
} finally {
httpConn.disconnect();
}
return true;
}
public void run() {
try {
System.out.println(Thread.currentThread().getName());
download();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
package com.util.file;
public class Files {
/***
* 获取应用程序的根目录
* @return 应用程序根目录
*/
public static String getSysPath(){
return System.getProperty("user.dir");
}
}
results:
Thread-0
html
# robots.txt for http://www.w3.org/
#
# $Id: robots.txt,v 1.50 2007/12/13 17:09:37 ted Exp $
#
# For use by search.w3.org
User-agent: W3C-gsa
Disallow: /Out-Of-Date
User-agent: W3T_SE
Disallow: /Out-Of-Date
User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT; MS Search 4.0 Robot)
Disallow: /
# W3C Link checker
User-agent: W3C-checklink
Disallow:
# exclude some access-controlled areas
User-agent: *
Disallow: /2004/ontaria/basic
Disallow: /Team
Disallow: /Project
Disallow: /Web
Disallow: /Systems
Disallow: /History
Disallow: /Out-Of-Date
Disallow: /2002/02/mid
Disallow: /mid/
Disallow: /2004/08/W3CTalks
Disallow: /2007/11/Talks/search
Disallow: /People/all/
Disallow: /RDF/Validator/ARPServlet
Disallow: /2003/03/Translations/byLanguage
Disallow: /2003/03/Translations/byTechnology
Disallow: /2005/11/Translations/Query
Disallow: /2003/glossary/subglossary/
#Disallow: /2005/06/blog/
#Disallow: /2001/07/pubrules-checker
#shouldnt get transparent proxies but will ml links of things like pubrules
Disallow: /2000/06/webdata/xslt
Disallow: /2000/09/webdata/xslt
Disallow: /2005/08/online_xslt/xslt
Disallow: /Bugs/
Disallow: /Search/Mail/Public/
Disallow: /2006/02/chartergen
the end
10485
spider1.setWebAddress("http://www.w3c.org/");
spider1.setDestFile(Files.getSysPath() + "/"+"w3c.");
的设置自己测试