[Java] Descargar archivo desde Internet

Moderador: dresha

Reglas del Foro
En Ogarena no están bien vistos el Warez ni la Piratería; para eso hay otros foros que seguro os acogen con los brazos abiertos.
apokalypse
Helper Programación
Helper Programación
Mensajes: 207
Registrado: 25 Jun 2008 03:31

[Java] Descargar archivo desde Internet

Mensaje por apokalypse »

A veces nuestro programa necesitará descargarse algún archivo desde internet.

He creado una clase que nos ayuda muchísimo a descargar un fichero de internet.

Basta con darle la URL del fichero Web, la dirección de destino en el disco duro, y lo descarga (si es que internet lo permite).

Os dejo aquí el código:

Código: Seleccionar todo

package client;

/*
 *  DescargadorDeArchivos APK 1.0
 *  
 *  Contiene un método descargarArchivo(entrada,salida) que descarga el archivo solicitado
 *  en el fichero de salida correspondiente.
 *  
 *  Lanza una excepción si se produce algún fallo.
 *  
 *  Forma de uso:
 *  1.-Crear objeto DescargadorDeArchivos
 *  2.-Llamar al método .descargarArchivo(String entrada, String salida);
 *  
 */
 
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

public class DescargadorDeArchivos 
{

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /*
     *  Constructor
     */
    public DescargadorDeArchivos() 
    {
    
    }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /*
     *  Rutina para conectar fisicamente con un servidor
     */
    public void descargarArchivo(String entrada, String salida) throws Exception
    {
         URL url = new URL(entrada);
         URLConnection urlCon = url.openConnection();
         // acceso al contenido web
         InputStream is = urlCon.getInputStream();

         // Fichero en el que queremos guardar el contenido
         FileOutputStream fos = new FileOutputStream(salida);

         // buffer para ir leyendo.
         byte [] array = new byte[1000];

         // Primera lectura y bucle hasta el final
         int leido = is.read(array);
         while (leido > 0) {
            fos.write(array,0,leido);
            leido=is.read(array);
         }

         // Cierre de conexion y fichero.
         is.close();
         fos.close();
    }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
Responder