Prácticas con URL

De MediaWiki
Ir a la navegación Ir a la búsqueda

Enunciado 1

Comproba o funcionamento do seguinte programa, e analiza os resultados obtidos:

 1 import java.net.*;
 2 
 3 // https://www.cifprodolfoucha.es/centro/
 4 class url_ej1_a{
 5     public static void main( String[] args ) {
 6         url_ej1_a obj = new url_ej1_a();
 7 
 8         try {
 9             System.out.println("Constructor simple para URL principal" );
10             obj.display( new URL( "https://www.cifprodolfoucha.es" ) );
11 
12             System.out.println("Constructor de cadea para URL + directorio" );
13             obj.display( new URL( "https://www.cifprodolfoucha.es/centro") );
14 
15             System.out.println("Constructor con protocolo, host e directorio" );
16             obj.display( new URL("https","www.cifprodolfoucha.es","/centro" ) );
17 
18             System.out.println("Constructor con protocolo, host, porto e directorio" );
19             obj.display( new URL("https","www.cifprodolfoucha.es",443,"/centro" ) );
20 
21             System.out.println( "Construe un enderezo absoluto a partir do enderezo do Host e unha URL relativa" );
22             URL baseURL = new URL("https://www.cifprodolfoucha.es" );
23             obj.display( new URL( baseURL,"/centro") );
24            
25         } catch( MalformedURLException e ) {
26             System.out.println( e );
27         }
28     }
29 
30     // Método para poder presentar na pantalla partes dun enderezo URL
31     void display( URL url ) {
32         System.out.print( url.getProtocol()+" " );
33         System.out.print( url.getHost()+" " );
34         System.out.print( url.getPort()+" " );
35         System.out.print( url.getFile()+" " );
36         System.out.println( url.getRef() );
37  
38         // Presenta o enderezo completa como unha cadea
39         System.out.println( url.toString() );
40         System.out.println();
41     }
42 }

Modificao para comprobar o funcionamento con:

Enunciado 2

Escribe un programa que garde o contido dunha URL nun ficheiro chamado paxina.html.

Tes este código de xestión do ficheiro para que che sirva de axuda:

 1 // Código anterior a implementar...
 2  if (fichero.exists()) {
 3             System.out.println("O ficheiro " + sFichero + " xa existe!");
 4         } else {
 5             try {			
 6 	        // Ábrese unha conexión hacia esa URL que devolverá unha canle de entrada pola cal poderá ler todo o que chegue
 7                 BufferedReader paginaHtml = new BufferedReader(new InputStreamReader(entrada));
 8                 BufferedWriter bw = new BufferedWriter(new FileWriter(sFichero));
 9 
10                 // Leese e preséntase o contido do ficheiro en pantalla liña a líña
11                 while ((cadena = paginaHtml.readLine()) != null) {
12                     bw.write(cadena + "\r\n");
13                 }
14 
15                 System.out.println("Ficheiro creado correctamente");
16 
17                 try {
18                     paginaHtml.close();
19                     bw.close();
20                 } catch (IOException e) {  
21                     e.printStackTrace();
22                     System.out.println("Excepción na entrada e saída ó pechar o ficheiro!");
23                 }
24 
25             } catch (UnknownHostException e) {
26                 e.printStackTrace();
27                 System.out.println("Debes estar conectado para que isto funcione ben!");
28             } catch (MalformedURLException e) {
29                 e.printStackTrace();
30                 System.out.println("Esa URL non está ben formada!");
31             } catch (IOException e) {
32                 e.printStackTrace();
33                 System.out.println("Excepción na entrada e saída!");
34             }
35         }
36     }

Enunciado 3

Crea un programa que descargue unha imaxe a partir da súa URL.

Tes este código de xestión do ficheiro para a escritura da imaxe para que che sirva de axuda:

 1             // obtense o inputStream da foto web e ábrese o ficheiro local.
 2             InputStream is = urlCon.getInputStream();
 3             FileOutputStream fos = new FileOutputStream("foto.jpg");
 4 
 5             // lectura da foto da web e escritura en ficheiro local
 6             byte[] array = new byte[1000]; // buffer temporal de lectura
 7             int leido = is.read(array);
 8 
 9             while (leido > 0) {
10                 fos.write(array, 0, leido);
11                 leido = is.read(array);
12             }
13 
14             // peche de conexion e ficheiro.
15             is.close();
16             fos.close();

Solucións

Podes consultar as solucións ás practicas con URL.