Clase Url

  • Uploaded by: Jairo
  • 0
  • 0
  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Clase Url as PDF for free.

More details

  • Words: 2,470
  • Pages: 23
UNIVERSIDAD DE PANAMÁ CENTRO REGIONAL UNIVERSITARIO DE VERAGUAS FACULTAD INFORMÁTICA, ELECTRÓNICA Y COMUNICACIÓN LIC. EN INFORMÁTICA PARA LA GESTIÓN EDUCATIVA Y EMPRESARIAL PROGRAMACIÓN IV INF222

LABORATORIO #6 “Clase URL”

FACILITADOR DIEGO SANTIMATEO

INTEGRANTES CONCEPCION, JAIRO

9-724-1589

MONTES, DIOMEDES

9-723-640

II SEMESTRE 2008

INDICE

Contenidos

Pág.

Introducción..................................................................................................... 3 Objetivos......................................................................................................... 4 Descripción del Problema............................................................................... 5 Diagrama UML de Clases.............................................................................. 6 Estructura del programa (Uml) con la respectiva documentación de las Clases y métodos............................................................................................ 7 Class Url: ................................................................... ........................... 7 Código Fuente................................................................................ 7 Class LeeWeb........................................................................................ 8 Código Fuente................................................................................ 8,9 Class ObtenerDatos.............................................................................. 10 Código Fuente................................................................................ 10,11,12 Class DespliegaArch............................................................................. 12 Código Fuente................................................................................ 13 Similitudes de los flujos.................................................................................. 14 Utilidad práctica de la clase URL.................................................................... 15 Resultados de la Ejecución de la Aplicación, Modo Gráfico para I/O............. 16-20 Experiencias individuales del laboratorio........................................................ 21

Clase URL – Montes, Diomedes

2

Concepción, Jairo

INTRODUCCION La clase URL contiene contructores y métodos para la manipulación de URL (Universal Resource Locator): un objeto o servicio en Internet. Con el URL se identifica cualquier recurso accesible en la RED como por ejemplo; una página web, un documento, una dirección de correo, imagen, vídeo, audio, texto,etc. Normalmente una URL consta de:  Identificador del método de acceso.  Servidor que identifica la computadora que cuenta con el recurso

 Nombre del recurso. El formato general de un URL es: protocolo://servidor/directorio/archivo, dado una dirección URL Podemos obtener datos desde de la RED, con un InputStream que modele el comportamiento fundamental de un flujo de entrada.

Nuestra aplicación esta diseñada para leer un sitio Web y pasar su contenido a un archivo de texto. De igual forma podemos añadir una etiqueta HTML al sitio Web en cualquier parte del mismo sin afectar su contenido.

Con un explorador de Internet se puede visualizar el contenido del archivo creado además del documento añadido.

Clase URL – Montes, Diomedes

3

Concepción, Jairo

OBJETIVOS

 Identificar similitudes en el manejo de FLUJOS para captura desde teclado, lectura de archivo de texto, lectura de un recurso de la web, despliegue en consola.

 Crear una aplicación Java que lea un documento HTML de la web, lo despliegue en consola y lo grabe en un archivo de texto.

Clase URL – Montes, Diomedes

4

Concepción, Jairo

DESCRIPCIÓN DEL PROBLEMA

Este laboratorio se puede realizar en grupos de dos personas y trata de lo siguiente:  Identificar similitudes en el manejo de FLUJOS para captura desde teclado, lectura de archivo de texto, lectura de un recurso de la web, despliegue en consola.  Crear una aplicación Java que lea un documento HTML de la web, lo despliegue en consola de manera legible y lo grabe en un archivo de texto.  Mediante una clase nueva adicione al archivo de texto un párrafo HTML (use las etiquetas adecuadas) creado por usted.  En esa clase nueva adicione un método que permita extraer el contenido de una etiqueta y crear un archivo de texto con ese contenido. Revise si el archivo se crea correctamente.  Con un explorador de Internet despliegue el contenido del archivo que usted creó.

Clase URL – Montes, Diomedes

5

Concepción, Jairo

Clase URL – Montes, Diomedes

6

Concepción, Jairo

DIAGRAMA UML DE CLASES

Class Url Objetos

Clases

Acceso LeeWeb() ObtenerAcceso ObtenerDatos() Captura DespliegaArch()

Main()

Class LeeWeb String inputText; BufferedReader pag; String OpenUrl; Int cant;

BufferedReader leeURL() String ObtieneURL() Void EscribirUrl() Int Getcant()

Class ObtenerDatos

No tiene

Void GetParrafo(String eti) Void AñadirParrafo(String Id,String parrafo,int cantpar)

Class DespliegaArch String Url; String Id; String Parrafo; Parrafo Eti;

PrinterArch() PrinterArch(String inputText) GetId() GetParrafo() GetEtiqueta()

ESTRUCTURA DEL PROGRAMA (UML) CON LA RESPECTIVA DOCUMENTACIÓN DE LAS CLASES Class Url:

Class Url Objetos

Descripción - Funcionamiento

Nombre

Clases

Captura

DespliegaArch()

ObtenerAcceso

ObtenerDatos()

acceso

LeeWeb() Métodos

Main()

void

Objeto de la clase DespliegaArch() que se encarga de capturar los datos que se van a utilizar en el programa Objeto de la clase ObtenerDatos() que se encarga de Añadir y extraer el contenido del archivo. Objeto de la clase LeeWeb() que se encarga de lee un archivo URL y lo escribe en otro archivo. Descripción - Funcionamiento Se encarga de la ejecución del programa, llama a los métodos de las demás clases.

Código Fuente de la clase import java.io.*; import java.net.*; import javax.swing.*; import java.lang.*; class Url { public static void main(String args[]) throws IOException { DespliegaArch Captura = new DespliegaArch(); ObtenerDatos ObtenerAcceso = new ObtenerDatos(); LeeWeb acceso = new LeeWeb(Captura.PrinterArch()); System.out.println("**** Leyendo archivo de la web ...espere por favor ...."); Captura.PrinterArch(acceso.ObtieneURL()); acceso.EscribirUrl(); ObtenerAcceso.AñadirParrafo(Captura.GetId(), Captura.GetParrafo(),acceso.Getcant()); ObtenerAcceso.GetParrafo(Captura.GetEtiqueta()); } } // fin del main

Class LeeWeb:

Class LeeWeb Variables de la Clase

Descripción - Funcionamiento

Nombre

Tipo

inputText

String

pag

BufferedReader

OpenUrl

String

Almacena la dirección del Url que se desea leer

cant

int

Cuenta y almacena la cantidad de párrafos que existen en el archivo leído.

Almacena los datos que se leyeron en el archivo

Métodos

Descripción - Funcionamiento

LeeURL()

BufferedReader

Método privado que se conecta y usa un URL para obtener el recurso correspondiente.

ObtieneURL()

String

Método publico que realiza la lectura del documento URL para luego devolver todos los datos leidos.

EscribirUrl()

void

Método publico que se encarga de realizar la escritura en un nuevo archivo, los datos obtenidos en el url

Getcant()

Int

Método publico que se encarga de contar la cantidad de párrafos que contiene el Url.

Código Fuente de la clase import java.io.*; import java.net.*; import java.lang.*; class LeeWeb { private String inputText =""; private BufferedReader pag; private String OpenUrl; private BufferedReader web; private int cant; public LeeWeb(String Url) { this.OpenUrl = Url; } //constructor LeeWeb

private BufferedReader LeeURL() throws IOException{ URL recurso = new URL(OpenUrl); URLConnection recursoWeb = recurso.openConnection(); InputStream is = recursoWeb.getInputStream(); InputStreamReader isr = new InputStreamReader(is); this.pag = new BufferedReader(isr); return(this.pag); }//fin del metodo LeeURL

Clase URL – Montes, Diomedes

9

Concepción, Jairo

public String ObtieneURL() throws IOException { LeeURL(); String inputLine=""; System.out.flush(); // obliga al despliegue inmediato try { while ((inputLine = pag.readLine()) != null){ inputText += inputLine + "\n"; if(inputLine.indexOf("

")!=-1){ cant++; } } pag.close(); }catch (MalformedURLException me) { System.out.println("MalformedURLException: " + me); } catch (IOException ioe) { System.out.println("IOException: " + ioe); } return(this.inputText); } // fin del metodo LeeURL

public int Getcant(){ return(this.cant); } } // fin de LeeWeb

public void EscribirUrl() throws IOException { try{ String s; BufferedReader leer = new BufferedReader(new StringReader(ObtieneURL())); PrintWriter escribir = new PrintWriter(new BufferedWriter(new FileWriter("Prueba.html"))); while ((s = leer.readLine()) != null){ escribir.println(s); } leer.close(); escribir.close(); } catch (IOException ioe) { System.out.println("Final de la lectura"); } }//fin de metodo EscribirUrl

Class ObtenerDatos: Clase URL – Montes, Diomedes

10

Concepción, Jairo

Class ObtenerDatos Variables de la Clase

Descripción - Funcionamiento

Nombre

Tipo

-------------

------------

Métodos

GetParrafo(String eti)

AñadirParrafo(String Id,String parrafo,int cantpar)

------------------------------------------------

Descripción - Funcionamiento

void

Método publico que se encarga de obtener el contenido de cualquiera etiqueta html, utiliza como argumento la variable eti que contiene la etiqueta que se desea obtener el contenido.

void

Método publico que se encarga de añadir un párrafo en el archivo con su respectivo Id, Que utiliza como argumento la variable id que contiene el identificador del párrafo, la variable parrafo que contiene el parrafo que se desea añadir y la variable cantpar que contiene el numero donde se desea añadir el párrafo

Código Fuente de la clase import java.io.*; import java.net.*; import javax.swing.*; class ObtenerDatos {

public ObtenerDatos() { } //constructor LeeWeb

Clase URL – Montes, Diomedes

11

Concepción, Jairo

public void GetParrafo(String eti)throws IOException{ String s; int sw=1; try{ FileReader arch1 = new FileReader("DatosUrl.html"); BufferedReader leer = new BufferedReader(arch1); PrintWriter escribir = new PrintWriter(new BufferedWriter(new FileWriter("Extraccion.txt"))); while ((s = leer.readLine()) != null){ if(s.indexOf("<"+eti+">")!=-1){ if(s.indexOf("")!=-1){ escribir.println(s); } else{ sw=0; } } if(sw==0){ escribir.println(s); if(s.indexOf("")!=-1){ sw=1; } } } leer.close(); escribir.close(); } catch (Exception e) { e.printStackTrace(); } }//fin del metodo LeeURL

public void AñadirParrafo(String Id,String parrafo,int cantpar) throws IOException { int cant=0; String s; String nuPar = JOptionPane.showInputDialog(null,"La cantidad de parrafo que contiene el archivo es de "+cantpar+"\n En que numero de parrafo desea incluir "); int numPar=Integer.parseInt(nuPar); try{

FileReader arch1 = new FileReader("Prueba.html"); BufferedReader in = new BufferedReader(arch1); File salida = new File("DatosUrl.html"); //archivo de salida PrintWriter ar = new PrintWriter(salida); while ((s = in.readLine()) != null){ if(cantpar>0){ if(s.indexOf("

")!=-1){ cant++; if(cant==numPar){ ar.println("

"+parrafo+"

"); } } }else { ar.println("

"+parrafo+"

"); } ar.println(s); } in.close(); File fichero = new File("DatosUrl.html"); fichero.delete();

Clase URL – Montes, Diomedes

12

Concepción, Jairo

ar.close(); File f1 = new File("DatosUrl.html"); File f2 = new File("Prueba.html"); f1.renameTo(f2); } catch (Exception e) { e.printStackTrace(); } } // fin del metodo AñadirParrafo } // fin de LeeWeb

Class DespliegaArch:

Class DespliegaArch Variables de la Clase

Descripción - Funcionamiento

Nombre Url

Tipo String

Almacena la dirección del Url.

Id

String

Almacena el id del parrafo

Parrafo

String

Almacena el parrafo que se desea añadir

Eti

String

Almacena la etiqueta que se desea obtener

Métodos

Descripción - Funcionamiento

PrinterArch()

String

Método publico que se encarga de capturar la dirección Url.

PrinterArch(String inputText)

void

Método publico que se encarga de desplegar en consola el Url.

GetId()

String

Método publico que se encarga de obtener el id del parrafo.

GetParrafo()

String

Método publico que se encarga de capturar el párrafo que se desea añadir al archivo.

GetEtiqueta()

String

Método publico que se encarga de capturar la etiqueta a la cual se desea obtener el contenido.

Código Fuente de la clase Clase URL – Montes, Diomedes

13

Concepción, Jairo

import java.io.*; import java.net.*; import javax.swing.*; class DespliegaArch { private String Url; private String Id; private String Parrafo; private String Eti; public DespliegaArch() {} //constructor DespliegaArch

public String PrinterArch() { Url = "http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/II_5.htm"; return(this.Url); }

public void PrinterArch(String inputText) { System.out.println(inputText); //despliegue del documento HTML en consola System.out.println("\n**** Fin de la lectura de la web"); }

public String GetId() { Id = JOptionPane.showInputDialog(null," return(this.Id); }

Introduzca el Id del parrafo ");

public String GetParrafo() { Parrafo = JOptionPane.showInputDialog(null,"Introduzca el parrafo"); return(this.Parrafo); }

public String GetEtiqueta() { Eti = JOptionPane.showInputDialog(null,"Introduzca la etiqueta que desea extraer el contenido"); return(this.Eti); } } // fin de DespliegaArch

SIMILITUDES DE LOS FLUJOS Clase URL – Montes, Diomedes

14

Concepción, Jairo

En el manejo de FLUJOS en Java existen diversas similitudes las cuales desglosaremos a continuación: En los flujos para la lectura de un recurso de la Web existe una clase de nombre InputStreamReader, la cual tiene similitudes con los flujos para captura desde el teclado. De igual forma la clase BufferedReader aparece en los flujos para la lectura de una Web, la lectura de un archivo y para el despliegue en consola, existiendo en estos flujos similitudes entre ellos. En la mayoría de los casos de flujos se observa la clase BufferedReader a excepción de la lectura desde el teclado y en los flujos para pasar datos a un archivo de texto, en donde se utiliza la clase BufferedWriter u otras las cuales son para escribir en un archivo. Consideramos que los flujos FileReader y FileWriter también son similares, con la diferencia que uno es para leer y el otro para escribir.

Clase URL – Montes, Diomedes

15

Concepción, Jairo

UTILIDAD PRÁCTICA DE LA CLASE URL

Mediante la clase URL se puede identificar cualquier recurso accesible en la RED como por ejemplo: una página web, una dirección de correo, etc.

Un ejemplo práctico es el que aplicamos en nuestro trabajo, en donde leemos un sitio web y pasamos su contenido a un archivo de texto. De igual forma podemos añadir un documento HTML al sitio web en cualquier parte del mismo sin afectar su contenido.

Clase URL – Montes, Diomedes

16

Concepción, Jairo

Con un explorador de Internet se puede visualizar el contenido del archivo creado además del documento añadido. Esto sería una práctica muy útil a utilizar la clase URL.

Resultados de la Ejecución de la Aplicación En esta pantalla se muestra en consola un mensaje de espera, se aplica para indicar que la aplicación esta trabajando en la lectura del documento procedente de la Web.

En esta pantalla vemos desplegado en consola todo el contenido HTML del documento que hemos leído de la web, de igual manera este contenido lo grabamos en un archivo html. Para este caso especifico accesamos al documento "http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/II_5.htm";

Clase URL – Montes, Diomedes

17

Concepción, Jairo

En esta pantalla mostramos el archivo html guardado.

Clase URL – Montes, Diomedes

18

Concepción, Jairo

En el siguiente paso procedemos a adicionar al archivo de texto un párrafo HTML, para esto solicitaremos que ingrese el ID del párrafo como se muestra a continuación en la siguiente pantalla:

Después de introducir el ID, se procede a capturar el contenido del párrafo; como se muestra a continuación

En la siguiente pantalla le ofrecemos al usuario la posibilidad de ingresar el párrafo donde el desee, para esto le indicamos la cantidad total de parrafos que contiene el archivo, y le solicitamos que ingrese después de que numero desea ingresar esta etiqueta. Para este caso lo insertaremos después del tercer (3) parrafo.

En las siguientes pantallas mostramos la etiqueta HTML que hemos introducido en el documento. Les presentamos una vista de la etiqueta introducida a través del código fuente del archivo y desde el explorador de Windows. Código fuente del archivo:

Clase URL – Montes, Diomedes

19

Concepción, Jairo

...

Desde el Explorador de Windows

En la siguiente pantalla extraeremos el contenido del una etiqueta HTML, para luego guardarlas en un archivo de texto. El usuario puede extraer la etiqueta deseada, para este caso extraeremos las etiquetas de párrafos (

), como se muestra a continuación: Clase URL – Montes, Diomedes

20

Concepción, Jairo

En esta pantalla desplegamos en consola el contenido de todas las etiquetas de párrafos, que se encuentran en el documento.

En esta pantalla mostramos el archivo de texto con el contenido de todas las etiquetas de párrafos, que se encuentran en el documento.

Clase URL – Montes, Diomedes

21

Concepción, Jairo

En esta pantalla mostramos el archivo de texto guardado:

Clase URL – Montes, Diomedes

22

Concepción, Jairo

EXPERIENCIAS INDIVIDUALES Diomedes Montes J Este Laboratorio es de mucha importancia para mi ya que al igual que en anteriores he adquirido nuevos conocimientos que se me seran de utiles en el desarrollo del curso,. En esta he aprendido la utilidad y el uso de un localizador Uniforme de Recursos (URL) con el cual podemos acceder a los diversos recursos de Internet, también sobre el objeto URLConnection es cual es el encargado de establecer la conexión con la PC, asi mismo sobre la utilidad del método getInputStream que proporciona un flujo para leer el contenido de entrada. Jairo Concepción Este laboratorio era parecido al laboratorio de archivo, donde la única diferencia estaba en el flujo para obtener el Url, presente un poco de dificultades en el manejo de las etiquetas que me permitirían añadir o extraer algo del archivo Url . Estos laboratorios me están ayudando a aclarar muchas dudas que tenia antes y espero que estos conocimientos me ayudes más adelante el lo profesional.

Clase URL – Montes, Diomedes

23

Concepción, Jairo


Related Documents

Clase Url
November 2019 20
Proyecto#3 Clase Url
December 2019 16
Url
November 2019 33
Url
November 2019 23
Url
November 2019 22
Url
November 2019 29

More Documents from ""

Aeromodelismo
April 2020 0
Wilo 2.docx
October 2019 13
October 2019 14