2013-10-22 41 views
2

我嘗試從網頁上讀取整個源文件,但我只收到一半或更少。 我的代碼有問題嗎?Java只讀網頁的一半url

這是我寫的代碼:

public class ReadFromReuters { 

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) { 
    // TODO code application logic here 
    ReadFromReuters rfr = new ReadFromReuters(); 
    try(BufferedReader br = new BufferedReader(new InputStreamReader(rfr.getConnection().getInputStream()))){ 
     String str; 
     while((str = br.readLine()) != null){     
      System.out.println(str); 
     } 
    }catch(IOException ioe){}   
} 
public URLConnection getConnection() throws MalformedURLException, IOException{ 
    URL reuters = new URL("http://www.quickflix.com.au/browse/play"); 
    URLConnection conn = reuters.openConnection();   
    return conn; 
} 
public void splitBy(String str){ 

} 
}  
+2

你是怎麼確定只讀了一半的? – kosa

+1

查看結果輸出並注意到返回的行數太少,而不是完整的信息。 – coco

+4

我不知道這是否會幫助你的情況,但你不應該默默吞下'IOException'。它可能會告訴你一件重要的事情 - 而且這甚至可能是你問題的原因。至少應該記錄或打印它('e.printStackTrace()')。更好的是,你應該把調用堆棧發送給可以做一些有用的事情的人(以某種方式向用戶報告錯誤等)。 – yshavit

回答

0

測試你的代碼。似乎工作。我用WinMerge比較了您的代碼和網站的源代碼的輸出。結果:沒有區別。 注意:本網站使用分頁!你只能得到這個代碼的第一頁。

+0

對不起,我把另一個錯誤的網址,並沒有例外,我仍然有相同的徽章 – coco

+0

你能幫我一個關於如何獲得所有頁面的建議? – coco

0

我試過你的代碼並糾正了一些錯誤,它工作正常。試試這個修改過的代碼

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.net.URLConnection; 

public class ReadFromReuters { 

    public static void main(String[] args) { 

     // TODO code application logic here 
     ReadFromReuters rfr = new ReadFromReuters(); 
     try 
     { 
      BufferedReader br = new BufferedReader(new InputStreamReader(rfr.getConnection().getInputStream())); 
      String str; 
      while((str = br.readLine()) != null){     
       System.out.println(str); 
      } 
     }catch(IOException ioe){}   
    } 

    public URLConnection getConnection() throws MalformedURLException, 
      IOException { 
     URL reuters = new URL("http://www.quickflix.com.au/browse/play"); 
     URLConnection conn = reuters.openConnection(); 
     return conn; 
    } 

    public void splitBy(String str) { 

    } 

} 
+0

BufferedReader與有限的資源和你寫的方式有什麼區別。如果你改變與http://www.quickflix.com.au/browse/play/newreleases的鏈接,問題仍然存在。 – coco

+0

@coco:嘗試使用上面編碼的Eclipse IDE。它工作正常。您的代碼中的錯誤是「您正在嘗試打開大括號中寫入BufferedReader」。嘗試塊總是後跟「{」大括號,最後以「}」結尾,然後它應該跟着Catch塊。 – Rajan

+0

謝謝。我會盡力。 – coco