我有这个,但我想知道是否有更快的方法:
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);
}
答案 0 :(得分:5)
可能网络是最大的开销,在Java代码方面你可以做的不多。但使用IOUtils
至少要快得多:
String page = IOUtils.toString(url.openConnection().getInputStream());
请记住关闭基础流。
答案 1 :(得分:3)
如果您需要使用html进行操作,请找一些库。例如jsoup。
jsoup是一个用于处理真实HTML的Java库。它提供 一个非常方便的API,用于提取和操作数据,使用 最好的DOM,CSS和类似jquery的方法。
示例:
Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines = doc.select("#mp-itn b a");
答案 2 :(得分:0)
如果您正在使用Apache Commons IO的IOUtils,就像Tomasz所建议的那样,有一个更简单的方法:toString(URL),或者它的首选表兄弟采取charset(当然需要提前知道资源的charset)。 / p>
String string = IOUtils.toString( new URL( "http://some.url" ));
或
String string = IOUtils.toString( new URL( "http://some.url" ), "US-ASCII" );