开发者

Optimized option for getting text from a web page

I used url.openConnection() to get text from a webpage but i got time delay in execution while i tried it in loops i also tried httpUrl.disconnect(). but the change is not that much... can anyone give me a better option for this i used the following code for this

for(int i=0;i<10;i++){
    URL google = new URL(array[i]);//array of links 
    HttpURLConnection yc =(HttpURLConnect开发者_StackOverflowion)google.openConnection(); 
    BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream())); 
    String inputLine;

    while ((inputLine = in.readLine()) != null) { 
        source=source.concat(inputLine);
    }
    in.close();
    yc.disconnect();
}


A couple of issues I can see.

in.readLine() doesn't retain the newline so when you use concat, all the newlines have been removed.

Using concat in a loop like this builds a longer and longer String. This will get slower and slower with each line you add.

Instead you might find IOUtils useful.

URL google = new URL("123newyear.com/2011/calendars/");
String text = IOUtils.toString(google.openConnection().getInputStream()); 


See Reading Directly from a URL for details on how to to get a stream from which you can read the contents of the URL.

Basically, you

  1. Create a url URL url = new URL("123newyear.com/2011/calendars/";

  2. Call openstream() on the URL object

    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
    
  3. Read from the stream (like you did).
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜