2010-02-20 16 views
6

Estoy tratando de escribir un código en Java en el que el usuario proporcione un enlace URL y el enlace toma programa de URL y descargar una página web, ya que es y ahorre en particular, como location..same guardar como ... opción disponible en la página web.Descargar fichero pasando URL utilizando el código de Java

Por favor alguien me puede ayudar a

Gracias de antemano

+1

¿Se puede decir lo que has hecho hasta ahora? ¿En qué punto estás atrapado? Por favor –

Respuesta

5

Puede utilizar la API de Java URL para obtener un flujo de entrada de la URL a continuación, lea la de ella y escribir a través de la corriente de salida en un archivo.

ver read data from url, Write to file

1

Tener un vistazo a la HtmlParser. Tiene algunas características que lo ayudarán a extraer recursos de una página web.

9

// URL de ejemplo: http://www.novell.com/coolsolutions/tools/downloads/ntradping.zip

import java.io.*; 
import java.net.*; 


public class UrlDownload { 
    final static int size = 1024; 

    public static void fileUrl(String fAddress, String localFileName, String destinationDir) { 
     OutputStream outStream = null; 
     URLConnection uCon = null; 

     InputStream is = null; 
     try { 
      URL url; 
      byte[] buf; 
      int byteRead, byteWritten = 0; 
      url = new URL(fAddress); 
      outStream = new BufferedOutputStream(new FileOutputStream(destinationDir + "\\" + localFileName)); 

      uCon = url.openConnection(); 
      is = uCon.getInputStream(); 
      buf = new byte[size]; 
      while ((byteRead = is.read(buf)) != -1) { 
       outStream.write(buf, 0, byteRead); 
       byteWritten += byteRead; 
      } 
      System.out.println("Downloaded Successfully."); 
      System.out.println("File name:\"" + localFileName + "\"\nNo ofbytes :" + byteWritten); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } finally { 
      try { 
       is.close(); 
       outStream.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

    public static void fileDownload(String fAddress, String destinationDir) { 
     int slashIndex = fAddress.lastIndexOf('/'); 
     int periodIndex = fAddress.lastIndexOf('.'); 

     String fileName = fAddress.substring(slashIndex + 1); 

     if (periodIndex >= 1 && slashIndex >= 0 && slashIndex < fAddress.length() - 1) { 
      fileUrl(fAddress, fileName, destinationDir); 
     } else { 
      System.err.println("path or file name."); 
     } 
    } 

    public static void main(String[] args) { 
     if (args.length == 2) { 
      for (int i = 1; i < args.length; i++) { 
       fileDownload(args[i], args[0]); 
      } 
     } else { 
     } 
    } 
} 

Está funcionando plenamente.

+0

Che su código, tal vez los argumentos de la sentencia 'FileDownload (args [i], args [0]);' deben ser cambiados. – Daniele

Cuestiones relacionadas