我正在制作我的第一个Android应用程序,我必须使用HTML页面的代码。
其实我这样做:
private class NetworkOperation extends AsyncTask<Void, Void, String > {
protected String doInBackground(Void... params) {
try {
URL oracle = new URL("http://www.nationalleague.ch/NL/fr/");
URLConnection yc = oracle.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
String inputLine;
String s1 = "";
while ((inputLine = in.readLine()) != null)
s1 = s1 + inputLine;
in.close();
//return
return s1;
}
catch (IOException e) {
e.printStackTrace();
}
return null;
}
但问题是需要花费太多时间。如何将HTML从第200行例证到第300行?
抱歉我的英语不好:$
答案 0 :(得分:0)
您通过HTTP获取HTML文档。 HTTP通常依赖于TCP。所以...你不能只是“跳过线”!服务器将始终尝试向您发送您感兴趣的部分之前的所有数据,并且您的通信方必须确认接收此类数据。
答案 1 :(得分:0)
最佳案例使用,而非readLine()
使用read(char[] cbuf, int off, int len)
。另一种肮脏的方式
int i =0;
while(while ((inputLine = in.readLine()) != null)
i++;
if(i>200 || i<300 )
DO SOMETHING
in.close();)
答案 2 :(得分:0)
read(char[] cbuf, int off, int len
)] StringBuilder
] 打开缓冲的阅读器(就像你已经做的那样):
URL oracle = new URL("http://www.nationalleague.ch/NL/fr/");
BufferedReader in = new BufferedReader(new InputStreamReader(oracle.openStream()));
不是逐行阅读,而是阅读char[]
(我会使用大小约为8192的一个)
而不是使用StringBuilder
附加所有阅读char
。
阅读各种HTML源代码接口有点冒险,因为HTML页面源代码的格式可能会发生变化。