Telechargement d'un document à partir d'un programme java [Résolu]

Messages postés
28
Date d'inscription
samedi 10 mars 2012
Statut
Membre
Dernière intervention
15 décembre 2012
- - Dernière réponse : cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
- 11 mars 2012 à 09:31
Bonsoir,
J'ai voulu faire un programme java qui télécharge un document à partir wikipédia. J'ai trouvé ce code et il marche bien

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

public class Wiki
{
public static void getFile(String host)
{
InputStream input = null;
FileOutputStream writeFile = null;

try
{
URL url = new URL(host);
URLConnection connection = url.openConnection();
int fileLength = connection.getContentLength();

if (fileLength == -1)
{
System.out.println("Invalide URL or file.");
return;
}
else{
input = connection.getInputStream();
String fileName = url.getFile().substring(url.getFile().lastIndexOf('/') + 1);
writeFile = new FileOutputStream(fileName);
byte[] buffer = new byte[1024];
int read;

while ((read = input.read(buffer)) > 0)
writeFile.write(buffer, 0, read);
writeFile.flush();
}
}
catch (IOException e)
{
System.out.println("Error while trying to download the file.");
e.printStackTrace();
}
finally
{
try
{
writeFile.close();
input.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}

public static void main(String[] args)
{

getFile("http://ar.wikipedia.org/wiki/");
}
}


Maintenant mon problème c'est que j'ai un tableau contenant des noms et je veux que mon programme télécharge automatiquement les article succesivement. j'ai essayé avec ca et ca n'a pas marché
for(k=0;k<tab.length;k++)
{

getFile("http://ar.wikipedia.org/wiki/"+tab[k]);

}
il se coinse lorsqu'il ne trouve pas un article.
Je veux bien que a chaque fois ne trouve pas l'article il passe au suivant et ne se coinse pas.
Merci bien de votre aide
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
3
Merci
Dans le cas ou il ne trouve pas d'article, il doit lever une exception, il faudra que tu la catch à l'intérieur de ta boucle pour qu'il passe à l'élément suivant :

for(k=0;k<tab.length;k++) { 
    try {
        getFile("http://ar.wikipedia.org/wiki/"+tab[k]); 
    }
    catch(Exception e){
        // écris ici ce que tu veux faire si l'article n'est pas trouvé
        // (peut être rien)
    }
} 

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 189 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
0
Merci
Bonjour,

Je déplace vers le forum java.
Commenter la réponse de cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
0
Merci
Par contre, ne laisse pas le catch(Exception e), mais remplace par le type d'exception qui est levé lorsque l'article n'est pas trouvé sinon, tu risques d'avoir des problèmes.
Commenter la réponse de cs_Julien39
Messages postés
28
Date d'inscription
samedi 10 mars 2012
Statut
Membre
Dernière intervention
15 décembre 2012
0
Merci
Bonjour
Je vous remercie très bien.
Ca marche très bien maintenant.
Commenter la réponse de nacef007
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
0
Merci
De rien.

Penses à accepter la réponse.

A+
Commenter la réponse de cs_Julien39
Messages postés
28
Date d'inscription
samedi 10 mars 2012
Statut
Membre
Dernière intervention
15 décembre 2012
0
Merci
OK c bon la réponse est acceptée.
Excusez moi c la première fois que j'utilise ce forum.
Merci une autre foi.
cordialement
Commenter la réponse de nacef007
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250
0
Merci
Il n'y a pas de mal.
a+
Commenter la réponse de cs_Julien39