Diferencia entre revisiones de «Solucións ás practicas con URL»

De MediaWiki
Ir a la navegación Ir a la búsqueda
Línea 57: Línea 57:
  
 
= Enunciado 3 =
 
= Enunciado 3 =
 +
Escribe un programa que descargue unha imaxe a partir da súa URL.
 +
 
<syntaxhighlight lang="java" line enclose="div" highlight="" >
 
<syntaxhighlight lang="java" line enclose="div" highlight="" >
 
import java.io.FileOutputStream;
 
import java.io.FileOutputStream;

Revisión del 22:16 13 nov 2021

Enunciado 2

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

 1 import java.net.*;
 2 import java.io.*;
 3 
 4 class EscribirFicheiroTexto {
 5 
 6     public static void main(String[] args) {
 7         String cadena;
 8         String sFicheiro = "paxina.html";
 9         File ficheiro = new File(sFicheiro);
10 
11         if (ficheiro.exists()) {
12             System.out.println("O ficheiro " + sFicheiro + " xa existe!");
13         } else {
14             try {
15                 // Créase un obxecto de tipo URL
16                 URL url = new URL("https://www.cifprodolfoucha.es");
17 
18                 // Ábrese unha conexión hacia esa URL que devolverá unha canle de entrada pola cal poderá ler todo o que chegue
19                 BufferedReader paxinaHtml = new BufferedReader(new InputStreamReader(url.openStream()));
20                 BufferedWriter bw = new BufferedWriter(new FileWriter(sFicheiro));
21 
22                 // Leese e preséntase o contido do ficheiro en pantalla liña a líña
23                 while ((cadena = paxinaHtml.readLine()) != null) {
24                     bw.write(cadena + "\r\n");
25                 }
26                 System.out.println("Ficheiro creado correctamente");
27                 try {
28                     paxinaHtml.close();
29                     bw.close();
30                 } catch (IOException e) {  
31                     e.printStackTrace();
32                     System.out.println("Excepción na entrada e saída ó pechar o ficheiro!");
33                 }
34             } catch (UnknownHostException e) {
35                 e.printStackTrace();
36                 System.out.println("Debes estar conectado para que isto funcione ben!");
37             } catch (MalformedURLException e) {
38                 e.printStackTrace();
39                 System.out.println("Esa URL non está ben formada!");
40             } catch (IOException e) {
41                 e.printStackTrace();
42                 System.out.println("Excepción na entrada e saída!");
43             }
44         }
45     }

Posibles alternativas/melloras:

  • Poderías personalizalo para que:
  • pregunte o nome de ficheiro co que se almacenará a web
  • en caso de que exista o ficheiro, posibilite sobreescribir our darlle outro nome
  • pregunte qué paxina web queremos descargar

Enunciado 3

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

 1 import java.io.FileOutputStream;
 2 import java.io.InputStream;
 3 import java.net.URL;
 4 import java.net.URLConnection;
 5 
 6 public class DescargarImaxeAFicheiro {
 7 
 8     public static void main(String[] args) {
 9         try {
10             // Url coa foto
11             URL url = new URL("https://www.cifprodolfoucha.es/wp-content/uploads/2021/01/logo-RUP.png");
12 
13             // establecemos conexion
14             URLConnection urlCon = url.openConnection();
15 
16             // sacamos por pantalla o tipo de ficheiro
17             System.out.println(urlCon.getContentType());
18 
19             // obtense o inputStream da foto web e ábrese o ficheiro local.
20             InputStream is = urlCon.getInputStream();
21             FileOutputStream fos = new FileOutputStream("foto.jpg");
22 
23             // lectura da foto da web e escritura en ficheiro local
24             byte[] array = new byte[1000]; // buffer temporal de lectura
25             int leido = is.read(array);
26             while (leido > 0) {
27                 fos.write(array, 0, leido);
28                 leido = is.read(array);
29             }
30 
31             // peche de conexion e ficheiro.
32             is.close();
33             fos.close();
34         } catch (Exception e) {
35             e.printStackTrace();
36         }
37     }
38 }

Posibles alternativas/melloras:

  • Poderías personalizalo para que:
  • pregunte o nome de ficheiro co que se almacenará a foto
  • en caso de que exista o ficheiro, posibilite sobreescribir our darlle outro nome
  • pregunte a URL de qué imaxe queremos descargar

Enunciado 4

 1 import java.io.IOException;
 2 import java.io.InputStream;
 3 import java.net.URL;
 4 import java.net.URLConnection;
 5 
 6 public class oMeuURLConnection {
 7 
 8     public static void main(String[] args) throws IOException {
 9         URL exemplo = new URL("https", "www.oracle.com", 443, "/");
10         //URL exemplo = new URL("https://www.oracle.com/");
11 
12         URLConnection exemploCon = exemplo.openConnection();
13 
14         System.out.println("Data: " + exemploCon.getDate());
15         System.out.println("Tipo: " + exemploCon.getContentType());
16         System.out.println("Expiracion: " + exemploCon.getExpiration());
17         System.out.println("Última modificacion: " + exemploCon.getLastModified());
18         
19         System.out.println("== CONTIDO ==");
20 
21         InputStream stream = exemploCon.getInputStream();
22 
23         int i;
24         while ((i = stream.read()) != -1) {
25             System.out.print((char) i);
26         }
27     }
28 }