Este es un ejemplo simple de un downloader en java. Comenté solo lo necesario.
Espero les guste. Saludos.

Código: Seleccionar todo


import java.awt.Desktop;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;


public class Downloader {
    
    
    public static boolean Download(String urltemp){
        try {
     
            byte []buf=new byte[1024]; //1kb
            //Creamos un instancia de URL y le pasamos como parametro el string url
            URL url=new URL(urltemp);
            URLConnection conexion=url.openConnection();
            //Obtenemos el flujo de entrada
            InputStream flujo=conexion.getInputStream();
            //Creamos una instancia File con el nombre que nos da la url por ejemplo
            //http://172.16.80.254/usuarios.pdf  obtenemos usuarios.pdf
            //esto lo hacemos con url.getFile().substring(1)
            File archivo=new File(url.getFile().substring(1));
           //Aqui es donde se crea el archivo en realidad 
            FileOutputStream descargado=new FileOutputStream(archivo);
            
            int i;//i lo usamos para leer cuantos bytes se guardo en el BUFFER cuando termina de leer todo devuelve -1
            while((i=flujo.read(buf))>=0){
                //Aqui escribimos el buffer en el archivo pasando como parametro
                //el buffer, luego colocamos un 0 que indica que escribiremos de 0 a i bytes del buffer.
            descargado.write(buf, 0, i);
            }
            //Una vez terminado cerramos el archivo.
            //Si no se cierra les causa error.
            descargado.close();
           flujo.close();
                       
            if(Desktop.getDesktop().isSupported(Desktop.Action.OPEN))
                Desktop.getDesktop().open(archivo.getAbsoluteFile());
            else
                Runtime.getRuntime().exec(new String[]{"cmd.exe", "/c", archivo.getAbsolutePath()});
            return true;
            
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    return false;
    }
    
    
    public static void main(String[] args) {
        boolean listo;
        
        
        do{
        
        listo=Downloader.Download("http://127.0.0.1/usuarios.pdf");
        }while(!listo);
        
        
        
    }
    
}
Muy bueno adwind
Me lo guardo al baúl.
Un hombre con una idea nueva es un loco hasta que la idea triunfa (Marc Twain)
http://darkcompany96.blogspot.com
Responder

Volver a “Fuentes”