0

私はこれを持っていますが、もっと速い方法があるかどうか疑問に思いました:

        URL url=new URL(page);
        InputStream is = new BufferedInputStream(url.openConnection().getInputStream());
        BufferedReader in=new BufferedReader(new InputStreamReader(is));
        String tmp="";
        StringBuilder sb=new StringBuilder();
        while((tmp=in.readLine())!=null){
            sb.append(tmp);
        }
4

3 に答える 3

5

おそらくネットワークが最大のオーバーヘッドであり、Javaコード側でできることはあまりありません。ただし、使用するIOUtils方が少なくとも実装がはるかに高速です。

String page = IOUtils.toString(url.openConnection().getInputStream());

基になるストリームを閉じることを忘れないでください。

于 2012-08-01T21:40:37.057 に答える
3

HTMLを操作する必要がある場合は、ライブラリを見つけてください。たとえばjsoupのように。

jsoupは、実際のHTMLを操作するためのJavaライブラリです。DOM、CSS、jqueryに似た最高のメソッドを使用して、データを抽出および操作するための非常に便利なAPIを提供します。

例:

Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines = doc.select("#mp-itn b a");
于 2012-08-01T21:51:02.580 に答える
0

Tomaszが示唆するようにApacheCommonsIOのIOUtilsを使用している場合は、さらに単純なメソッドがあります。toString (URL)、または文字セットを取得するその優先されるいとこです(もちろん、リソースの文字セットを事前に知っている必要があります)。

String string = IOUtils.toString( new URL( "http://some.url" ));

また

String string = IOUtils.toString( new URL( "http://some.url" ), "US-ASCII" );
于 2013-10-03T17:24:02.900 に答える