// Hilo para copiar de URL a un archivo import java.io.*; import java.net.*; public class URLCopyThread extends Thread { private URL fromURL; // URL de origen private BufferedInputStream input; // flujo de entrada private BufferedOutputStream output; // flujo de salida private String from, to; // constructor para copiar el hilo public URLCopyThread(String n, String f, String t) { super( n ); from = f; // URL de entrada to = t; // nombre de archivo de salida try { fromURL = new URL(from); input = new BufferedInputStream(fromURL.openStream() ); output = new BufferedOutputStream(new FileOutputStream(to) ); } catch(MalformedURLException m) { System.err.println("Excepción MalformedURLException al crear la URL " + from); } catch(IOException io) { System.err.println("IOException " + io.toString() ); } } // método run() del hilo public void run() { byte [] buf = new byte[ 512 ]; int nread; // lee el flujo de entrada y lo escribe en un archivo hasta llegar al final de la entrada try { while((nread = input.read(buf, 0, 512)) > 0) { output.write(buf, 0, nread); System.out.println( getName() +": " + nread + " bytes" ); } input.close(); output.close(); System.out.println("Hilo " + getName() + " copying " + from + " to " + to + " finished"); } catch(IOException ioe) { System.out.println("IOException:" + ioe.toString()); } } // fin del método run() } // fin de la clase URLCopyThread