Bajar una URL a nuestro disco duro con Java
Esta es una pequeña función estática (para poner en una clase de funciones o en cualquier clase) que nos descarga una URL que recibe por parámetro a un fichero en nuestro disco local.
try {
//Creo un objeto URL y abro una conexión para comenzar la lectura
URL dir = new URL(url);
URLConnection yc = dir.openConnection();
java.io.InputStream in = yc.getInputStream();
File f = new File(destino);
//Comprueba si puedo crear el fichero de destino, si falla lanza una excepción
f.createNewFile();
// Creo un objeto para escribir lo que leo de la URL
FileOutputStream out = new FileOutputStream(f, false);
//Creo un array que servirá de buffer de lectura/escritura
byte[] lectura = new byte[512];
int leido = 0;
while ((leido = in.read(lectura)) > 0) {
out.write(lectura, 0, leido);
}
//Cierro los ficheros
in.close();
out.close();
return true;
} catch (Exception ex) {
//Nos da un informe de la excepción y en que líea de código se produjo
Logger.getLogger(ClaseQueContieneLaFuncion.class.getName()).log(Level.SEVERE,
"Error en la descarga", ex);
}
//Si la ejecución llegó hasta aquí hubo algún error
return false;
}
Si la función tiene éxito devuelve true y en otro caso false.