2 votes

Rendre Android Http BufferedReader plus efficace ?

J'ai ce code, qui contient un BufferedReader et lit les données HTML d'un site web. Cependant, chaque page du site que je charge contient environ 600 lignes de HTML, ce qui prend beaucoup de temps pour lire les données à chaque fois. Je veux que le code soit plus efficace en ne lisant pas les lignes qui commencent (par exemple) par les lettres/mots 'on'. Cela peut-il être fait ? Voici mon code :

public String getInternetData(String s) throws Exception { 
    BufferedReader in = null;  
    try{ 
        HttpClient client = new DefaultHttpClient(); 
        URI website = new URI(s);
        HttpGet request = new HttpGet(); 
        request.setURI(website); 
        HttpResponse response = client.execute(request);
        in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
        StringBuffer sb = new StringBuffer(""); 
        String l = ""; 
        String nl = System.getProperty("line.seperator");
        while(((l = in.readLine()) != null)){
            sb.append(l+nl); 
            }
        in.close();
        return sb.toString(); 
    }finally{
        try { 
            if(in != null) { 
                in.close(); 
            }
        }catch(Exception e){ 
            e.printStackTrace(); 
        }
}

}

Ce code fonctionne parfaitement et renvoie une chaîne contenant le code HTML de la page Web entière. Existe-t-il un moyen de filtrer les lignes commençant par "on", sans lire la ligne entière au préalable ?

3voto

mbanzon Points 1969

Pour savoir si une ligne commence par "on", vous devez d'abord déterminer s'il y a eu un caractère de nouvelle ligne. Pour ce faire, vous devez lire toute la ligne. En bref, non, il n'est pas possible de lire certaines lignes d'un flux sans lire l'ensemble du flux.

Si vous connaissiez la position des lignes, vous pourriez utiliser la méthode .skip() - mais l'implémentation de cette méthode pourrait simplement lire les octets non désirés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X