2013-02-04 3 views
0

J'ai essayé plusieurs façons de télécharger un fichier à partir d'une URL et de le placer dans un dossier. J'ai trouvé ce code sur le net, est-ce que je l'utilise correctement?Téléchargement de fichiers (.zip, .jar, ...) dans un dossier

Si je l'ai fait: saveFile ("NomDossier", "ADirectDownloadLinkForAFile")

je recevrais IOException erreur

Ce que je veux que mon code pour le faire est:

  1. Créer un dossier
  2. Télécharger le fichier
  3. Téléchargé le fichier pour aller au dossier juste créé

Je suis un débutant ici désolé. S'il vous plaît aider

+0

Comment cela se rapporte-t-il au serveur HTTP Apache? Tu veux dire Apache Tomcat? Et pourquoi dites-vous que vous êtes un débutant - vous êtes ici pour 2 mois ... – home

+2

Je ne sais pas. * L'utilisez-vous correctement? Avez-vous des erreurs? –

+1

"J'ai trouvé ce code sur le net, est-ce que je l'utilise correctement?" Probablement pas si vous devez demander cela. Vous devriez essayer de comprendre tout code que vous lisez sur le web au lieu de simplement l'utiliser aveuglément. Nous n'avons aucune idée de ce que 'Status' ou' VanillaChoose' sont ou comment 'saveFile()' est implémenté ou ce que signifient les paramètres. Ou comment ce code échoue pour vous. – millimoose

Répondre

1

Java peut télécharger un fichier à partir d'Internet de différentes manières. Le plus facile est d'utiliser un tampon et un flux:

File theDir = new File("new folder"); 

    // if the directory does not exist, create it 
    if (!theDir.exists()) 
    { 
    System.out.println("creating directory: " + directoryName); 
    boolean result = theDir.mkdir(); 
    if(result){  
     System.out.println("DIR created"); 
    } 

    } 
FileOutputStream out = new FileOutputStream(new File(theDir.getAbsolutePath() +"filename")); 
BufferedInputStream in = new BufferedInputStream(new URL("URLtoYourFIle").openStream()); 
byte data[] = new byte[1024]; 
int count; 
     while((count = in.read(data,0,1024)) != -1) 
     { 
      out.write(data, 0, count); 
     } 

Juste le concept de base. Ne pas oublier la fermeture des flux;)

+0

Cela fonctionne! Merci de votre aide! – junyi00

+0

Un 'InputStream 'ordinaire devrait fonctionner aussi bien. – millimoose

0

La déclaration File.mkdirs() semble créer un dossier appelé Files, mais la méthode saveFile() ne semble pas utiliser ce, et enregistrer simplement le fichier dans le répertoire courant.

Questions connexes