Lab Oratorio 6 De Progiii

  • Uploaded by: Eufemia Buitrago
  • 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 Lab Oratorio 6 De Progiii as PDF for free.

More details

  • Words: 2,451
  • Pages: 35
UNIVERSIDAD DE PANAMÁ CENTRO REGIONAL UNIVERSITARIO DE VERAGUAS FACULTAD DE INFORMÁTICA, ELECTRÓNICA Y COMUNICACIÓN ESCUELA DE INGENIERÍA EN INFORMÁTICA CARRERA: LICENCIATURA DE INGENIERÍA EN INFORMÁTICA

PROGRAMACIÓN III PROGRAMACIÓN ORIENTADA A OBJETOS

LABORATORIO 6 LA CLASE U.R.L.

PRESENTADO POR LOS ESTUDIANTES: EUFEMIA, BUITRAGO 2-719-2461 FÉLIX, RIVERA 9-727-620

PROFESOR: DIEGO SANTIMATEO

II SEMESTRE III AÑO

FECHA DE ENTREGA: MARTES, 11 DE NOVIEMBRE DE 2008.

ÍNDICE INTRODUCCIÓN……………………………………………………………………….

i

OBJETIVOS……………………………………………………………………………..

ii

CONTENIDO…………………………………………………………………………….

iii

Descripción de los requisitos del programa……………………………………..

1

Descripción general del funcionamiento de las clases………………………...

2

Código fuente de la clase 1 (Principal)-Main……………………………………

3

Descripción de las clases, métodos y objetos de la clase class PrincipalLeeWeb……………………………………………………………………

6

Código fuente de la clase 2………………………………………………………..

8

Descripción de las clases, métodos y objetos de la clase class ClaseNueva…………………………………………………………………………

12

Resultados de la ejecución……………………………………………………….

14

Diagrama UML del programa……………………………………………………..

25

Similitudes en el manejo de flujos………………………………………………...

26

Utilidad practica de la clase U.R.L…………………………………………………

26

Reflexiones individuales sobre el proyecto- Eufemia Buitrago………………..

27

Reflexiones individuales sobre el proyecto- Félix Rivera………………………

28

CONCLUSIONES……………………………………………………………………….

iv

BIBLIOGRAFÍAS……………………………………………………………………….

v

i

INTRODUCCIÓN

Debido a que en Internet podemos acceder o identificar diversos recursos usando un Localizador Uniforme de Recursos (URL) con el cual podemos identificar cualquier recurso accesible en la RED como una página web, un documento, una dirección de correo, imagen, video, audio, texto, etc. A su ves la World Wide Web necesita obtener recursos para su funcionamiento, razón por la cual utiliza U.R.L., los cuales codifican las localizaciones de los recursos de la Red. En el presente informe de laboratorio daremos a conocer más el funcionamiento de un U.R.L. junto a una clase con el mismo nombre encargada de crear una conexión real.

ii

OBJETIVO GENERAL

Construir una aplicación Java que lea un documento html de la web y lo despliegue en consola junto a sus modificaciones.

iii

CONTENIDO

1

DESCRPCIÓN DE LOS REQUISITOS DEL PROGRAMA  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ó.

2

DESCRIPCIÓN GENERAL DEL FUNCIONAMIENTO DE LAS CLASES

CLASE 1 - CLASE PRINCIPAL-Main() NOMBRE DE LA CLASE: MODIFICADORES DE ACCESO: FUNCIÓN DE LA CLASE:

PrincipalLeeWeb public Clase que permite una conexión y crea un vinculo entre el computador usuario y el computador recurso.

CLASE 2 NOMBRE DE LA CLASE: MODIFICADORES DE ACCESO: FUNCIÓN DE LA CLASE:

//CLASE 1(Principal) - MAIN import java.io.*; import java.net.*;

ClaseNueva public Clase que esta encargada de modificar el archivo de tipo html.

3

import java.lang.*; import javax.swing.*; class PrincipalLeeWeb { public static void main(String args[]) throws Exception { try { String inputLine, inputText,direccion_pag; int i=1; int sw=0; //Se solicita al ususario mediante una interfaz grafica que introduzaca la direccion de la pagina //que se desea leer direccion_pag = JOptionPane.showInputDialog(null,"Introduzca la direccion de la pagina"); URL recurso = new URL(direccion_pag); URLConnection recursoWeb = recurso.openConnection(); //Proporciona un flujo de entrada que permite el contenido del archivo InputStream is = recursoWeb.getInputStream(); //Crea el flujo para leer los datos InputStreamReader isr = new InputStreamReader(is); //Crea el filtro para leer las cadenas de caracteres BufferedReader paginaweb = new BufferedReader(isr); //Archivo de salida File archsalida = new File("primerosdat.txt"); PrintWriter out = new PrintWriter(archsalida); //Se lee el archivo url.html System.out.println("**** Leyendo archivo de la web ...espere por favor ...."); //Obliga al despliegue inmediato del archivo System.out.flush();

4

inputText =""; while ((inputLine = paginaweb.readLine()) != null) { //Inserta en el codigo el archivo, copia los id de los `parrafos y cierre de los mismos if((inputLine.indexOf("

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

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

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

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

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

"); i++; sw=1; } //Cierre del if else{ inputText += inputLine + "\n"; out.println(inputLine + "\n"); } //Cierre del else } //Cierre del else } //Cierre del while System.out.println(inputText); /**/out.close();//cierra archivo nuevo ClaseNueva agrega = new ClaseNueva(); agrega.InsertarParrafo(); agrega.ExtraerCrea(); System.out.println("\nFin de la lectura de la web"); }

//Cierre del try catch (MalformedURLException me) { System.out.println("MalformedURLException: " +

me); } //Cierre del primer catch catch (IOException ioe) {

5

System.out.println("IOException: " + ioe); } //Cierre del segundo catch } // fin del main } // fin de PrincipalLeeWeb

DESCRIPCIÓN DE LAS CLASES, MÉTODOS Y OBJETO DE LA CLASE class ClaseNueva

6

DESCRIPCIÓN DE LAS CLASES, MÉTODOS Y OBJETO DE LA CLASE class ClaseNueva-(Continuación) CLASES

FUNCIÓN MÉTODOS FUNCIÓN OBJETOS FUNCIÓN CLASE 1 - CLASE PRINCIPAL-Main() Da soporte JOptionPane.showMessag Envia archsalida Encargado específico de guardar eDialog() un PrincipalLeeWeb NOMBRE DE LA CLASE: al el primer mensaj MODIFICADORES DE protocolo public archivo de e por ACCESO: HTTP. texto Clase que permite una conexión ymedio crea un vinculo entre el FUNCIÓN DE LA CLASE: creado.

URL HttpURLConnection

CLASES

InputStreamReader String

URL

BufferedReader

computador usuario y el computadorde recurso. una ventana FUNCIÓN MÉTODOS FUNCIÓN FUNCIÓN . OBJETOS Encargado Crea el JOptionPane.showInputDi Envia Método de guardar flujo para Crea objetos alog() un utilizado en la dirección leer delos tipo mensaj la clase recurso de la página openConnection() datos. y los String URLConnecte por que se manipula. medio ion. desea de una buscar. Método deventana la clase en la cual URL podemo HttpURLCon Crea un s Obtiene los nection que objeto introduc getInputStream() isr caracteres llamado se utiliza ir un sueltos. recurso. para poder valor, carácte usar la clase URLConnect r o cadena. ion. Crea el Método Encargado InsertarParrafo() agrega Se

filtro para leer las cadenas Crea un de vinculo entre caracteres. el Encargada File de computador manejar URLConnection quelosejecuta la aplicación ficheros de y texto. el que Utilizada JOptionPane brinda el para recurso. manejar cuadros de diálogos.

invocado

encarga desde la de Clase devolverPrincipal. el índice ExtraerCrea() de la Método primera invocado aparicióndesde la paginaweb Indexof () Clase del objeto Principal. String especifica do en la instancia en cuestión.

de trabajar con los métodos de la nueva Objeto clase.

encargado de obtener las cadenas de caracteres.

7

//CLASE 2-CONTIENE EL METODO QUE MODIFICA EL ARCHIVO HTML import java.io.*; import javax.swing.*; public class ClaseNueva{ //Esta clase es la que contiene el metodo que modifica el archivo html //Constructor de la nueva clase llamada ClaseNueva public ClaseNueva(){ } public void InsertarParrafo()throws IOException{ try { //Creamos un objeto para asociar el nombre logico del archivo con el fisico o su contenido FileReader arch1 = new FileReader("primerosdat.txt"); //Utilizamos la clase BufferedReader para utilizar su metodo ReadLine BufferedReader in = new BufferedReader(arch1); String s = new String(); //Archivo de salida File salida = new File("siguientesdat.txt"); PrintWriter out = new PrintWriter(salida); String NumdeParrafo; String parrafoaagregar; NumdeParrafo = JOptionPane.showInputDialog(null,"Introduzca el numero del parrafo que desea agregar"); //Lectura del archivo while((s = in.readLine())!= null){ if(s.indexOf("

")>=0){ parrafoaagregar = JOptionPane.showInputDialog(null,"Introduzca el nuevo parrafo que desea agregar");

8

out.println("

"+parrafoaagregar+"

"); } //Cierre del if }

out.println(s); //Cierre del while

try { in.close(); File fichero = new File("primerosdat.txt"); if (fichero.delete()) System.out.println("El fichero ha sido eliminado"); else System.out.println("El fichero no puede ser eliminado"); out.close(); File f1 = new File("siguientesdat.txt"); File f2 = new File("primerosdat.txt"); boolean correcto = f1.renameTo(f2); if (correcto){ System.out.println("El renombrado ha sido correcto"); } //Cierre del if else{ System.out.println("El renombrado no se puede realizar"); }

} //Cierre del else //Cierre del segundo try

catch ( IOException e ) { System.err.println( "El archivo no se puede cerrar" ); }

//cierra hilo abierto por ventana de

diálogo }

//Cierre del primer try

catch (Exception e) { System.err.println("***Error al leer o abrir el archivo...\n" +e); }

9

}

//Cierre del metodo InsertarParrafo

public void ExtraerCrea()throws IOException{ try { FileReader arch1 = new FileReader("primerosdat.txt"); BufferedReader in = new BufferedReader(arch1); String s = new String(); boolean resultado; //Archivo de salida File salida = new File("siguientesdat.txt"); PrintWriter out = new PrintWriter(salida); String NumdeParrafo; String parrafoaagregar; int sw=0; NumdeParrafo = JOptionPane.showInputDialog(null,"Introduzca el numero del parrafo que desea extraer"); //Lectura del archivo while((s = in.readLine())!= null){ if(s.indexOf("

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

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

")>-1) sw=0; } //Cierre del while try { in.close(); out.close(); } //Cierre del segundo try catch ( IOException e ) { System.err.println( "El archivo no se pudo cerrar" );

10

}

//Cierra hilo abierto por ventana de

diálogo }

//Cierre del primer try

catch (Exception e) { System.err.println("***Error al leer o abrir el archivo...\n" +e); } } //Cierre del metodo ExtraerCrea } //Cierre de la clase llamada ClaseNueva

DESCRIPCIÓN DE LAS CLASES, MÉTODOS Y OBJETO DE LA CLASE class ClaseNueva

11

DESCRIPCIÓN DE LAS CLASES, MÉTODOS Y OBJETO DE LA CLASE CLASE 2 NOMBRE DE LA CLASE: MODIFICADORES DE ACCESO: FUNCIÓN DE LA CLASE:

ClaseNueva public Clase que esta encargada de modificar el archivo html

CLASES

FUNCIÓN

String

Crea objetos de tipo String y los manipula.

MÉTODOS

FUNCIÓN

OBJETOS

openConnection()

Método utilizado en la clase URLConnect ion.

recurso

FUNCIÓN Encargado de guardar la dirección de la página que se desea buscar.

Método de la clase URL Crea un objeto llamado recurso.

URL

HttpURLCon getInputStream()

nection que se utiliza

isr

Obtiene los caracteres sueltos.

paginaweb

Objeto encargado de obtener las cadenas de caracteres.

para poder usar la clase URLConnect ion.

Crea un vinculo entre el computador

URLConnection

que ejecuta la aplicación y el que brinda el recurso.

Indexof ()

Se encarga de sevolver el índice de la primera aparición del objeto String especifica do en la instancia en cuestión.

12

class ClaseNueva-(Continuación) RESULTADOS DE LA EJECUCIÒN CLASES

File

FUNCIÓN

Encargada de manejar los ficheros de texto.

FileReader

Permite operaciones de lectura con el archivo indicado.

BufferedReader

Mantiene un buffer de lectura/escritur a que permite optimizar el número de accesos a fichero, haciéndolos muy útiles en operaciones de entrada/salida.

String

Crea objetos de tipo String y permite su manipulación.

MÉTODOS

readLine()

Indexof ()

FUNCIÓN

Se encarga de la lectura de toda la línea en el archivo indicado. Se encarga de devolver el índice de la primera aparición del objeto String especificado en la instancia en cuestión.

ExtraerCrea()

Encargado de la extracción de un párrafo para su modificación.

InsertarParrafo( )

Encargado de la inserción de un nuevo párrafo o modificación de uno ya existente,

OBJETOS

FUNCIÓN

salida

Guarda e indica el despliegue en pantalla del segundo archivo de texto creado.

fichero

Encargado de guardar el primer archivo de texto (ya existente) para ser eliminado.

f1

Guarda los nuevos datos introducidos al segundo archivo de texto creado.

f2

Guarda los datos del primer archivo de texto.

13

Este el primer dato que te pide el programa

Esta es la información desplegada en consola correspondiente a la presentada en la Web

14

15

16

17

Aquí el programa solicita al usuario a través de una interfaz gráfica introduzca el número correspondiente al párrafo donde va a agregar información

Luego el programa solicita al usuario a través de una interfaz gráfica escriba por medio del teclado el párrafo a agregar

Despúes de esto el programa solicita al usuario por medio de una interfaz gráfica introduzca el número correspondiente al párrafo que desea extraer en un documento de texto (.txt)

Luego de que el usuario por medio del teclado introduce los datos requeridos por el programa, el mismo muestra en pantalla lo siguiente:

18

Seguido de los mensajes el programa muestra los documentos de texto (.txt) creados

19

Este es el párrafo 4 que se escogió agregar (Primer documento de texto (.txt) creado)

20

Este es el párrafo que el usuario índico al programa deseaba extraer (Segundo documento de texto (.txt) creado)

21

Esta es la página web leída y modificada por el programa

22

23

24

DIAGRAMA UML DEL PROGRAMA class PrincipalLeeWeb

openConnection(); getInputStream() Indexof () JOptionPane.showMessageDialog() JOptionPane.showInputDialog() InsertarParrafo() ExtraerCrea() Main()

class ClaseNueva

openConnection() getInputStream()

Indexof () readLine() Indexof () ExtraerCrea() InsertarParrafo()

25

SIMILITUDES EN EL MANEJO DE FLUJOS Para: Captura desde el teclado, lectura de archivo de texto, lectura de recurso de la web, despliegue en consola. Entre las similitudes que encontré están algunas clases que se pueden utilizar en ambos casos a la ves, como: String, InputStreamReader y BufferedReader.

UTILIDAD PRÁCTICA DE LA CLASE U.R.L.

El poder identificar cualquier recurso accesible en la red, como por ejemplo, una página web, un documento, una dirección de correo, imagen, video, audio y texto.

26

REFLEXIÓN INDIVIDUAL SOBRE EL PROYECTO

Eufemia Buitrago La labor del otro integrante de mi grupo, al igual que siempre fue muy buena y eficiente. La parte más difícil para mi, como siempre fue la de comprender claramente lo que en realidad había que hacer. Como siempre trabajamos mi compañero y yo la metodología utilizada para realizar este programa y alcanzar eficientemente sus objetivos fue la de DIVIDE y VENCERAS. Para mi el nuevo conocimiento adquirido fue el de agregarle un párrafo a una página web ya existente. Entre los conocimientos previos esenciales e indispensables en este caso estuvo primordialmente el de CÓMO LEER UNA PÁGINA WEB. Pienso al igual que siempre que esta experiencia es muy importante para mi formación profesional ya que me hace dar un paso más y me prepara mejor (ayudándome a corregir mis errores) para la misma. Creo que la mayor utilidad de este trabajo es la de acrecentar mis conocimientos para el futuro en el campo laboral, específicamente en el desarrollo de software.

27

REFLEXIÓN INDIVIDUAL SOBRE EL PROYECTO

Félix Rivera La labor de la integrante de mi grupo, es muy colaborativa y creativa a su ves. En realidad yo no encontré mayor dificultad en la elaboración del programa antes presentado ya que todo lo que el mismo requería lo habíamos hecho de una u otra forma anteriormente. La metodología utilizada para alcanzar los objetivos de este programa DIVIDE y VENCERAS.

fue la de

Entre los nuevos conocimientos adquiridos no menciono ninguno ya que en realidad para mi acrecenté los ya obtenidos en otros laboratorios. Entre los conocimientos previos esenciales para la realización de este laboratorio puedo mencionar que son los obtenidos en general en todos los laboratorios anteriores. Esta experiencia es muy importante para mi formación profesional ya que me ayuda a aprender a hacer software más eficientes y con distintos programas a la ves. La mayor utilidad que ha tenido la creación de este trabajo es el de prepararme mejor en el ámbito profesional para el futuro.

iv

CONCLUSIONES

 La clase U.R.L. pertenece al paquete java.net.  La clase U.R.L. la utilizamos para acceder a determinado recurso de Internet o

para identificarlos.

v

WEBGRAFÍAS 1. http://www.dcc.uchile.cl/~psalinas/uml/modelo.html 2. http://www.clikear.com/manuales/uml/ 3. http://www.esnips.com/doc/5ae972fd-837f-4ab4-a3c0-e5a575567699/Tutorialde-UML/?widget=documentIcon

4. http://www.cica.es/formacion/Java Tut/Cap9/url.html 5. http://www.gaugeus.com/ramblings/2006/12/26/usando-clases-en-java-classusage-in-java

Related Documents

Lab Oratorio 6 De Progiii
November 2019 26
Lab Oratorio 4 De Progiii
November 2019 20
Actividad De Lab Oratorio
October 2019 12
Lab Oratorio De Mas
April 2020 8
Informe De Lab Oratorio
November 2019 28

More Documents from ""

Laboratorio # 2
October 2019 23
Lab Oratorio 4 De Progiii
November 2019 20
Proyecto Final Listo1
November 2019 20
Asignacion1 De Progiii
November 2019 18
Lab Oratorio 6 De Progiii
November 2019 26
Laboratorio 5 De Progiii
November 2019 19