url.openstream在一些循环后变得缓慢

时间:2017-12-16 23:33:02

标签: java

作为编程的初学者,我实际上正在编写一个程序来练习,使用url.open在论坛上下载页面但是在88-90循环后,url.openstream变得非常慢并且减慢了所有程序的执行速度我不知道为什么。我在互联网上搜索了解释但未找到它。

private Set<utilisateur> arbretemp = new HashSet<utilisateur>();
    private ArrayList<String> arbretempString = new ArrayList<String>();
    private ArrayList<utilisateur> tempArray = new ArrayList<utilisateur>();
    private String lienPartie1;
    private String lienPartie2;
    private int nbrePage;
    private String nom;

-

String temporaire = "";
        for (int i = 1; i <= nbrePage; i++) {
            String line = "";
            String lien = lienPartie1 + i + lienPartie2;
            bar.setValue(i);

        try {
            url = new URL(lien);
            is = url.openStream();
            br = new BufferedReader(new InputStreamReader(is));

            System.out.println("avant while");
            while (((line = br.readLine()) != null)) {
                System.out.println("debut de while");
                if (((line.contains("alt=")) && line.contains("class=\"user-avatar-msg\""))) {

                    line = line.trim();
                    String[] temp = line.split("\"");

                    temporaire = temp[5] + " \r";
                    temp = temporaire.split("\"");

                    byte[] test = temporaire.getBytes();
                    if (!(temporaire.equalsIgnoreCase(""))) {
                        utilisateur utiltemp = new utilisateur(temporaire);

                        if (arbretemp.add(utiltemp)) {

                        } else {
                            arbretempString.add(temporaire);
                        }
                    }

                }

            }
            System.out.println("fin de while");
        } catch (MalformedURLException mue) {
        } catch (IOException ioe) {
            ioe.printStackTrace();
        } finally {
            try {
                if (is != null)
                    is.close();
            } catch (IOException ioe) {
                // nothing to see here
            }

        }

        String s = "page " + i + "/" + nbrePage;

    }
    System.out.println("fin de boucle");

    Iterator it = arbretemp.iterator();

    for (utilisateur a : arbretemp) {

        // System.out.println(a.nom);
        a.ajouterNbrePost(arbretempString);
    }

    TreeSet<utilisateur> salComp = new TreeSet<utilisateur>(new utilisateurComp());
    salComp.addAll(arbretemp);

    tempArray.addAll(arbretemp);
    tempArray.sort(new utilisateurComp());
}

正如你所看到的那样是法语,但我希望你能理解。

感谢您的回复和阅读

0 个答案:

没有答案