Laboratorio #6 Url

  • Uploaded by: Carlitos
  • 0
  • 0
  • November 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 Laboratorio #6 Url as PDF for free.

More details

  • Words: 1,603
  • Pages: 19
UNIVERSIDAD DE PANAMÁ CENTRO REGIONAL UNIVERSITARIO DE VERAGUAS Escuela: Ingeniería en informática Facultad: Informática electrónica y comunicación Carrera: Licenciatura en informática para la gestión educativa y empresarial Asignatura: Programación IV. Laboratorio: Laboratorio #6 – Clase URL

Facilitado por: Santimateo, Diego Integrantes: Carlos Álvarez H Irving Corro

9-718-2419 9-713-136

Fecha de entrega: 2008-29-08

INTRODUCCIÓN La clase URI se usa para encapsular un recurso, es decir, nos permite identificar un recurso. Su método más conocido es toURL() que sirve para transformar una URI en URL, cabe resaltar que no toda URI es una URL, por lo que pueda que el método nos devuelva una excepción del tipo URISyntaxException. La World Wide Web necesita obtener recursos para su funcionamiento, para esto utiliza URL (Localizadores Universales de Recursos) Los URL proporcionan consistencia para codificar las localizaciones de los recursos de la red. En el siguiente documento mostramos una clase llamada URL que nos permite crear una conexión real, mediante la clase URLConnection creamos un vinculo entre el computador que esta ejecutando la aplicación y computador que nos brinda el recurso. Para utilizar URLConnection usamos el método openConnection() de la clase URL Esta clase extiende de la clase URLConnection y da soporte específico al protocolo HTTP.

ENUNCIADO DEL PROBLEMA

 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ó.

OBJETIVOS. Crear una aplicación Java que lea un documento HTML de la Web y lo pueda ser desplegado en consola. Crear clases que contengan métodos que nos permitan manipular los archivos.

MÉTODOS Y CLASES DE JAVA USADOS EN LA SOLUCIÓN DEL PROBLEMA PROPUESTO

Clase FileReader: Está orientadas a manejar ficheros de texto, Permitiendo tanto operaciones de lectura. Clase BufferedReader: Mantiene un buffer de lectura/escritura que permite optimizar el número de accesos a fichero, haciéndolos muy útiles en operaciones de entrada/salida. Clase URLConnection La clase URL no crea una conexión real, la clase URLConnection crea un vinculo (peticion/respuesta) entre el computador que esta ejecutando la aplicación y el computador que esta brindando el recurso. Para utilizar URLConnection se usa el metodo openConnection() de la clase URL HttpURLConnection Esta clase extiende de la clase URLConnection y da soporte específico al protocolo HTTP. Clase String: Para la creación de objetos String o manipulación de ellos. Métodos Usados: •

Indexof (): Devuelve el índice de la primera aparición del objeto String especificado en la instancia en cuestión..

Clase JOptionPane: Para el uso de cuadros de dialogo. Métodos Usados • •

JOptionPane.showMessageDialog: Para enviar un mensaje por medio de una ventana. JOptionPane.showInputDialog: envia un mensaje por medio de una ventana en la cual podemos introducir un valor, carácter o cadena.

DIAGRAMA UML

Class LeeWeb

Main

Class NuevaClase

NuevaClase( ) InsertaParrafo( ) ExtraeCrea( )

FUNCIONAMIENTO DE LAS CLASES UTILIZADAS Clases

Descripción del Funcionamiento de las Clase Atributos Métodos Método main permite una conexión y crea un vinculo computador usuario-computador recurso.

Class LeeWeb

public NuevaClase( ) Método constructor, usado para crear un objeto que haga referencia al método main().

Class NuevaClase

public void InsertaParrafo( ) Método que abre archivo , copia el nuevo archivo y renombra el archivo con el nombre del archivo abierto anteriormente. public void ExtraeCrea( ) Método abre el archivo, extrae un parrafo y lo copia en un nuevo archivo.

CODIGO FUENTE import java.io.*; import java.net.*; import java.lang.*; import javax.swing.*; class LeeWeb { // Irving Corro. // Se conecta y usa un URL para obtener el recurso correspondiente public static void main(String args[]) throws Exception { try { String inputLine, inputText,direccion; int i=1; int sw=0; direccion = JOptionPane.showInputDialog(null,"La direccion de la pagina"); URL recurso = new URL(direccion); URLConnection recursoWeb = recurso.openConnection(); InputStream is = recursoWeb.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader pagweb = new BufferedReader(isr); /**/ File salida = new File("datos1.txt"); //archivo de salida PrintWriter out = new PrintWriter(salida); // se lee el archivo url.html System.out.println("**** Leyendo archivo de la web ...espere por favor ...."); System.out.flush(); // obliga al despliegue inmediato inputText =""; while ((inputLine = pagweb.readLine()) != null) { /*----------------------------------------------------------------------------------------------------------------*/ //Este segmento de código nos permite insertar en el código de el archive copia los id de los //párrafos y cierre de los mismos. if((inputLine.indexOf("

")>=0)&&(sw==0)){ out.println("

"); i++; sw=1; } else{ if((inputLine.indexOf("

")>=0)&&(sw==1)){ out.println("

"); sw=0; } if((inputLine.indexOf("

")>=0)&&(sw==0)){ out.println("

"); i++; sw=1;

} else{ inputText += inputLine + "\n"; out.println(inputLine + "\n"); } /*----------------------------------------------------------------------------------------------------------------*/ } } System.out.println(inputText); /**/out.close();//cierra archivo nuevo NuevaClase inserta = new NuevaClase(); inserta.InsertaParrafo(); inserta.ExtraeCrea(); System.out.println("\n**** Fin de la lectura de la web"); } catch (MalformedURLException me) { System.out.println("MalformedURLException: " + me); } catch (IOException ioe) { System.out.println("IOException: " + ioe); } } // fin del main } // fin de LeeWeb

Clase NuevaClase: import java.io.*; import javax.swing.*; public class NuevaClase{//Contiene el metodo que modifica el archivo html public NuevaClase(){//Constructor } /***************************************************************************** *************************/ public void InsertaParrafo()throws IOException{ try { FileReader arch1 = new FileReader("datos1.txt"); BufferedReader in = new BufferedReader(arch1); String s = new String(); File salida = new File("datos2.txt"); //archivo de salida PrintWriter out = new PrintWriter(salida); String NumeroParrafo; String parrafo; NumeroParrafo = JOptionPane.showInputDialog(null,"Introduzca el numero del parrafo para agregar"); while((s = in.readLine())!= null){ //lectura del archivo

if(s.indexOf("

")>=0){ parrafo = JOptionPane.showInputDialog(null,"Introduzca el nuevo parrafo"); out.println("

"+parrafo+"

"); } out.println(s); } try { in.close(); File fichero = new File("datos1.txt"); if (fichero.delete()) System.out.println("El fichero ha sido borrado satisfactoriamente"); else System.out.println("El fichero no puede ser borrado"); out.close(); File f1 = new File("datos2.txt"); File f2 = new File("datos1.txt"); boolean correcto = f1.renameTo(f2); if (correcto){ System.out.println("El renombrado ha sido correcto"); } else{ System.out.println("El renombrado no se ha podido realizar"); } } catch ( IOException e ) { System.err.println( "El archivo no se pudo cerrar correctamente" ); } //cierra hilo abierto por ventana de diálogo } catch (Exception e) { System.err.println("***Error al leer o abrir el archivo...\n" +e); } } /***************************************************************************** *************************/ public void ExtraeCrea()throws IOException{ try { FileReader arch1 = new FileReader("datos1.txt"); BufferedReader in = new BufferedReader(arch1); String s = new String(); boolean resultado; File salida = new File("datos2.txt"); //archivo de salida PrintWriter out = new PrintWriter(salida); String NumeroParrafo;

String parrafo; int sw=0; NumeroParrafo = JOptionPane.showInputDialog(null,"Introduzca el numero del parrafo a extraer"); while((s = in.readLine())!= null){ //lectura del archivo if(s.indexOf("

")>=0){ sw=1; } else if(sw==1) if(s.indexOf("

")==-1) out.println(s); if(s.indexOf("

")>-1) sw=0; } try { in.close(); out.close(); } catch ( IOException e ) { System.err.println( "El archivo no se pudo cerrar correctamente" ); } //cierra hilo abierto por ventana de diálogo } catch (Exception e) { System.err.println("***Error al leer o abrir el archivo...\n" +e); } }} ////////////////////////////////////////////////////////////////////////////////////////////////////////

EJECUCIÓN DEL PROGRAMA

En esta parte se le pide al usuario que introduzca la dirección de la pagino a la cual deseamos realizar una conexión y acceder a ella.

Ya introducida la dirección se despliega en consola de forma ordenada el código fuente en pantalla de la pagina con la cual realizamos una conexión.

Luego se le pide al usuario que introduzca sobre que párrafo desea introducir un nuevo párrafo

Una ves introducido el numero del párrafo aparece en pantalla una ventana para que introduzca el nuevo parrafo.

Como se pudo ver en la imagen anterior decidimos que fuera sobre el párrafo numero 4, si podemos observar en la imagen, logramos lo que queríamos, introducir un párrafo nuevo sobre el párrafo con id numero 4. para identificarlo se le coloco al nuevo párrafo un id anterior mas un uno.

Luego se le pide al usuario que indique que párrafo desea extraer siendo este el 5.

Aquí se muestran los resultados de la petición anterior, estas son dos imágenes en una se muestra el párrafo extraído, y en la otra se muestra lo que esta en el archivo original.

REFLEXIONES

Carlo Álvarez H

9-718 -2419

Este laboratorio me ayudo de mucho en agrandar mis conocimientos, tomando como visión que un programa puede servir de muchas utilidades, una de estas utilizando el recurso Web. Utilizando nuevos métodos que nos brinda el lenguaje de Java, para trabajar con URL, aprendiendo los beneficios de la programación Orientada a Objeto y reutilizando un código anteriormente utilizado para crear una nueva clase para modificar el laboratorio anterior.

Irving Corro.

Los URL son muchos, cada uno con un protocolo distinto, sin embargo los más utilizados son los que utilizan protocolos HTTP (HyperText Transfer Protocol) y FTP (File Transfer Protocol). La clase URL se conecta con objetos web accediendo a éstos a través sus direcciones URL. Para lograr la conexión a un URL usamos la clase URLConnection y para poder leerla usamos la clase BufferedReader.

CONCLUSIÓN Los URL son un recurso web puede ser cualquier cosa, un directorio, un archivo, un objeto en red como, por ejemplo, una interfaz para hacer unas query a un database remoto, o para un motor de búsqueda. La clase URLConnection nos ayuda a establecer una conexxion y nos permite establecr un vinculo con el servidor o el computador que nos brinda el servicio. Para utilizar URLConnection debemos usar el método openConnection() que es la clase que nos da soporte especifico al protocolo http. La clase URL contiene constructores y métodos para la manipulación de URL. La clase URL pertenece al paquete java.net, la utilizamos para acceder a determinado recurso de Internet o para identificarnos.

Related Documents

Laboratorio #6 Url
November 2019 23
Url
November 2019 33
Laboratorio #6
May 2020 13
Laboratorio 6
June 2020 13
Laboratorio 6
April 2020 18
Url
November 2019 23

More Documents from ""