2014-10-20 2 views
-1

Я хочу создать поток, чтобы сканировать все ссылки на сайт и хранить его в LinkedHashSet, но когда я печатаю размер этого LinkedHashSet, он ничего не печатает. Я начал учиться ползать! Я ссылался на «Искусство Java». Вот мой код:Crawling Web and Stored Links

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.util.LinkedHashSet; 
import java.util.logging.Level; 
import java.util.logging.Logger; 

public class TestThread { 

    public void crawl(URL url) { 
     try { 

      BufferedReader reader = new BufferedReader(
        new InputStreamReader(url.openConnection().getInputStream())); 
      String line = reader.readLine(); 
      LinkedHashSet toCrawlList = new LinkedHashSet(); 

      while (line != null) { 
       toCrawlList.add(line); 
       System.out.println(toCrawlList.size()); 
      } 
     } catch (IOException ex) { 
      Logger.getLogger(TestThread.class.getName()).log(Level.SEVERE, null, ex); 
     } 

    } 

    public static void main(String[] args) { 
     final TestThread test1 = new TestThread(); 
     Thread thread = new Thread(new Runnable() { 
      public void run(){ 
       try { 
        test1.crawl(new URL("http://stackoverflow.com/")); 
       } catch (MalformedURLException ex) { 
        Logger.getLogger(TestThread.class.getName()).log(Level.SEVERE, null, ex); 
       } 
      } 
     }); 
    } 
} 
+1

И в чем вопрос? – Marcin

+0

Я не знаю, как получить все связанные с этим, что я был обход и сохранил его, я просто использую LinkHashSet для хранения, но когда я просматриваю и распечатываю, он ничего не показывает – TrangVu

ответ

0

Вы должны заполнить свой список, как это:

while ((line = reader.readLine()) != null) { 
    toCrawlList.add(line); 
} 
System.out.println(toCrawlList.size()); 

Если это не сработает, попробуйте установить точку останова в коде и выяснить, если ваш читатель даже содержит что угодно.