Sie sind auf Seite 1von 37

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 4

DIRECTORIOS, SUBDIRECTORIOS Y ARCHIVOS

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:
JUEVES, 23 DE OCTUBRE DE 2008.
ÍNDICE

INTRODUCCIÓN………………………………………………………………………. i

OBJETIVOS…………………………………………………………………………….. ii

CONTENIDO……………………………………………………………………………. iii

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

Código de la Clase Principal………………………………………………...

Descripción de las Clases, Métodos y Objetos de la

Clase Principal…………………………………………………………………

Código de la Clase donde se crean los dos directorios……………….

Descripción de las Clases, Métodos y Objetos de la

Clase donde se crean los dos directorios………………………………..

Código donde se crea el archivo base y el código para

Modificarlo………………………………………………………………………

Descripción de las Clases, Métodos y Objetos de la

Clase donde se crea el archivo base y el archivo para

Modificarlo………………………………………………………………………

11

Código de la Clase donde se resuelve cada caso del


menú para la Modificación del Archivo……………………………………

15

Descripción de las Clases, Métodos y Objetos de la

Clase donde se resuelve cada caso del menú y la

Modificación del archivo……………………………………………………..

23

Reflexión Personal sobre el Proyecto……………………………………..

25

Resultados de la Ejecución del Programa………………………………..

26

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

iv

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

v
i

INTRODUCCIÓN

Debido a que Java es un lenguaje rico en recursos para manejar estructuras de datos,
lo cual a nivel superficial se ha podido experimentar con las diversas clases y métodos
de manejo de archivos, él mismo puede a su ves almacenar y leer diferentes tipos de
información de archivos tales como binarios, objetos java, texto, comprimidos, etc.

Java nos ofrece la clase FILE que permite crear instancias asociadas con el nombre de
un archivo, no con su contenido, facilitando el manejo de directorios y de archivos en
los subdirectorios, cambiar nombres, verificar existencia de archivos, etc.
ii

OBJETIVO GENERAL

 Construir una aplicación Java que verifique si el archivo se esta creando en su


directorio y si el nombre del archivo no existe en el directorio.
iii

CONTENIDO
1

DESCRPCIÓN DE LOS REQUISITOS DEL PROGRAMA

Se desea construir una aplicación Java, lo que significa que deben diseñarse las
clases necesarias para resolver el problema, recuerde que el main() solo controla la
ejecución. La aplicación debe permitir la creación de un documento HTML dentro de
una carpeta que esta contenida en otra. Los nombres de los directorios y del
documento deben ser capturados desde el teclado. Se debe permitir la modificación de
los contenidos de los elementos titulo, p, li, h1, h2 y la posibilidad de incluir hr dentro
de un párrafo, los li y los p se pueden discriminar usando un identificador id o name.
No es necesario que los párrafos sean muy extensos.

La aplicación debe verificar si el archivo se esta creando en un subdirectorio y si el


nombre del archivo no existe en el directorio.

//CLASE PRINCIPAL - MAIN


2

import java.io.*;
import javax.swing.*;
class CreaWeb
{
public static void main(String[] args)throws IOException
{
String selec;
int seleccion;
pagina web = new pagina();
//web es un objeto que se crea en la clase pagina
directorio guar = new directorio();
//guar es el objeto q se crea en la clase directorio
tipo modifica = new tipo();

try{
do
{
selec = JOptionPane.showInputDialog(null,"Marque 1
para crear dos directorios \n Marque 2 para crear un archivo html \n Marque 3
para modificar \n Marque 4 para salir",JOptionPane.QUESTION_MESSAGE);
seleccion = Integer.parseInt(selec);

switch(seleccion)
{
case 1:
guar.direct();
break;

case 2:
web.guarda();
break;

case 3:
web.modificar();
break;

case 4:
JOptionPane.showMessageDialog(null,"
Hasta Pronto");
break;

default:
JOptionPane.showMessageDialog(null,"Esta
opcion no està disponible");
}
3

}while(seleccion!=4);
}
catch(Exception e){
JOptionPane.showMessageDialog(null," ****Error en la captura****");}
}
}

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


class CreaWeb
4

CLASE 1 - CLASE PRINCIPAL-Main()

NOMBRE DE LA CLASE: CreaWeb


MODIFICADORES DE ACCESO: public
Clase donde se crea el menú principal con todas las
FUNCIÓN DE LA CLASE: funciones que va a realizar el programa, desde esta clase se
llama al resto de las mismas

CLASES FUNCIÓN MÉTODOS FUNCIÓN OBJETOS FUNCIÓN


Método
(invocado)
Es donde del objeto Creado en
pagina se crea el direct() web de tipo web la clase
objeto web guar en la pagina
clase
directorio
Método
(invocado)
del objeto
Es donde Creado en
guar de tipo
directorio se crea el guarda() guar la clase
web en la
objeto guar directorio
clase
directorio de
tipo pagina
Método
(invocado)
Es donde del objeto
se crea el modifica de Creado en
tipo modificar() modifica
objeto tipo web de la clase tipo
modifica la clase tipo
de tipo
pagina

//CLASE DONDE SE CREAN LOS 2 DIRECTORIOS


import java.io.*;
import javax.swing.*;
import java.io.File;
public class directorio
5

{
//**************************************************************
******************************
public void direct()throws IOException
{
String direct1,direct2;
direct1 = JOptionPane.showInputDialog("Nombre de la
carpeta #1:");
boolean success = (new File(direct1)).mkdirs();
JOptionPane.showMessageDialog(null,"Al crear el
subdirectorio debe colocar dos slach '//'despues del primer
directorio creado");

direct2 = JOptionPane.showInputDialog("Nombre de la
carpeta #2:");
success = (new File(direct2)).mkdirs();
}

//**************************************************************
******************************
public void BorrarFichero(String capt_ruta,String
archi)throws IOException
{

String sFichero = (archi);


File f = new File(sFichero);

if (f.delete())
JOptionPane.showMessageDialog(null,"Su cambio se
ha guardado");
else
JOptionPane.showMessageDialog(null,"Su cambio se
ha guardado");

File file = new File("1\\2\\cambio.html");


file.renameTo(new File(archi));
}
}
//**************************************************************
******************************
DESCRIPCIÓN DE LAS CLASES, MÉTODOS Y OBJETO DE LA
6

CLASE 2

NOMBRE DE LA CLASE: directorio


MODIFICADORES DE
public
ACCESO:
Clase que fue llamada desde el main() al introducir la opción 1
FUNCIÓN DE LA CLASE:
para la creación de los archivos

CLASES FUNCIÓN MÉTODOS FUNCIÓN OBJETOS FUNCIÓN


Método del Creado en
direct()
objeto guar la clase
File de tipo
Clase Método directorio
utilizada utilizado para
String para la para file reemplazar
cadena de File() realizar la al archivo
caracteres creación de existente
las con el
carpetas nuevo
nombre
Método
utilizado
para
Clase de
realizar los
tipo BorrarFichero() Nombre
procesos
directorio que lleva el
necesarios f
File utilizada archivo
para borrar
para la que deseo
archivos
creación borrar
Método
del objeto f
utilizado
Delete()
para borrar
el archivo

//CLASE DONDE SE CREA EL ARCHIVO BASE Y EL MENU PARA MODIFICARLO


import java.io.*;
import javax.swing.*;
public class pagina
{
7

tipo modifica = new tipo();

String opcion,archi,r,ruta,archivoName,capt_ruta;
int op;
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);

//**************************************************************
*******************************

public String modificar()throws IOException


{
String ver=JOptionPane.showInputDialog(“Antes de
modificar presine ‘v’ para verificar si el archivo a modificar
existe”);
if(“v”.equals(ver))
{
capt_ruta=verificar(ruta,archivoName);
if(r==”a”)
{
do
{
7xtens =
JoptionPane.showInputDialog(null,”Marque 1 si desea modificar el
encabezado de la web…\nMarque 2 si desea modificar el titulo de
la web…\nMarque 3 si desea modificar los 7xtensió de la web…
\nMarque 4 si desea modificar 7xten articulo de la web…\nMarque
5 para salir”,JoptionPane.QUESTION_MESSAGE);
op = Integer.parseInt(opcion);
switch(op)
{
case 1:

modifica.encabezado(capt_ruta,archi);
break;

case 2:

modifica.titulo(capt_ruta,archi);
break;
8

case 3:

modifica.parrafo(capt_ruta,archi);
break;

case 4:

modifica.articulo(capt_ruta,archi);
break;

case 5:
break;

default:

JoptionPane.showMessageDialog(null,”Opcion Incorrecta”);
}
}while(op!=5);
}
}
else
{
JoptionPane.showMessageDialog(null,”No se puede
verificar si existe”);
}
return(ruta);
}

//**************************************************************
*******************************

public String verificar(String ruta,String


archivoName)throws IOException
{
ruta = JoptionPane.showInputDialog(null, “Indique solo
la ruta del archivo que va a modificar:”);
archivoName = JoptionPane.showInputDialog(null,
“Indique el nombre y 8xtensión del archivo que va a modificar:”);
9

archi=ruta.concat(“\\”+archivoName);
// JoptionPane.showMessageDialog(null,”esta es la
ruta”+ruta);
File archivoabuscar = new File(archi);
if(archivoabuscar.exists())
{
JoptionPane.showMessageDialog(null,” El 9xtensi
existe”);
r=”a”;
}
else
{
JoptionPane.showMessageDialog(null,”Disculpe…El
archivo ‘NO’ existe o la ruta es incorrecta\n Vuelva a
intertarlo”);
r=”b”;
}
return(ruta);
}

//**************************************************************
*******************************
public void guarda()throws IOException
{
String resul;
JoptionPane.showMessageDialog(null,”Recuerde que la
9xtensión del archivo es .html”);
resul=JoptionPane.showInputDialog(“Indique la ruta,
luego el nombre y 9xtensión del archivo a guardar:”);

File salida = new File(resul);


PrintWriter out = new PrintWriter(salida);

out.println(“<html>”);
out.println(“<head>”);
out.println(“<title> </title>”);
out.println(“</head>”);
out.println(“<body>”);
out.println(“<h1> </h1>”);
// out.write(“<hr width=”º”>”);
10

out.println(“<p id= ></p>”);


out.println(“</body>”);
out.close();
JoptionPane.showMessageDialog(null,” La estructura de
la Web ha sido creada”);
}
}

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

CLASE 3

NOMBRE DE LA CLASE: Pagina


MODIFICADORES DE
public
ACCESO:
Clase que fue llamada desde el main() al introducir la opción 2 para
FUNCIÓN DE LA CLASE:
la creación del archivo base y el menú para modificarlo

CLASES FUNCIÓN MÉTODOS FUNCIÓN OBJETOS FUNCIÓN


11

Método
del
objeto
Objeto de
modifica
tipo web de
modificar() de tipo
modifica la clase tipo
web de
de tipo
la clase
pagina
tipo de
tipo
pagina
Método
creado Creaso en
Convierte el en la la clase
objeto clase InputStream
System.in al pagina Reader de
equals() isr
objeto isr para tipo pagina
para utilizar verificar para
InputStreamReader
los métodos la obtener los
de la clase existenci caracteres
Reader que a del sueltos
puede leer archivo
caracteres Método
creado
en la
clase
pagina
para la Objeto que
verificar() verificaci es
System.in
ón de la reemplazad
existenci o por isr
a del
archivo y
la ruta
del
mismo
12

Método
del
objeto
modifica
que esta
en la Creado en
clase la clase
tipo de BufferedRe
br
tipo ader de tipo
pagina pagina
para la
encabezado() modifica
ción del
encabez
ado de la
pagina
web
Método
del
objeto
modificar Creado en
que esta el método
en la modificar en
clase la clase File
titulo() tipo de archivoab de tipo
tipo uscar pagina para
pagina realizar la
para la búsqueda
modifica del archivo
ción del deseado
BufferedReader título de
la página
web
Clase de tipo
Método
directorio
del
utilizada para
objeto
la creación
modifica
del objeto f
que esta
en la
clase
tipo de
tipo
Creado en
13

Método
del
objeto
modifica
que esta
en la
clase
articulo()
tipo de
tipo
pagina
Clase que para la
crea el objeto modifica
archivo a ción
buscar para del/los
File poder artículos
realizar la Método
búsqueda del de la
archivo clase
deseado directorio
de tipo
pagina
guarda() encargad
o de
guardar
la ruta,
nombre y
extensió
n del
mismo
14

//CLASE DONDE SE RESULVE CADA CASO DEL MENU PARA LA MODIFICACION


DEL ARCHIVO
import java.io.*;
import java.util.*;
import javax.swing.*;

public class tipo


{
String div_parraf,archi,co,conca,modif,id;

InputStreamReader isr=new InputStreamReader(System.in);


BufferedReader br=new BufferedReader(isr);

directorio borra = new directorio();

//**************************************************************
*******************************
public String encabezado(String capt_ruta,String
archi)throws IOException
{
String tit_etiq;
FileReader arch1 = new FileReader(archi);
BufferedReader in = new BufferedReader(arch1);

File salida = new File("1\\2\\cambio.html");


PrintWriter out = new PrintWriter(salida);
15

String s = new String();

while((s = in.readLine())!= null) //lectura del


archivo
{
int val = s.indexOf("<title>");
if(val>=0)
{

JOptionPane.showMessageDialog(null,"Modifique el
Encabezado");
tit_etiq =
JOptionPane.showInputDialog("Ingrese el Nuevo Titulo del
Encabezado");

out.println("<title>"+tit_etiq+"</title>");
}
else
out.println(s);
}
in.close();
out.close();
borra.BorrarFichero(capt_ruta,archi); //se va a
borrar el archivo
return(capt_ruta);
}

//**************************************************************
*******************************
public String titulo(String capt_ruta,String archi)throws
IOException
{
String tit_pag;
FileReader arch1 = new FileReader(archi);
BufferedReader in = new BufferedReader(arch1);

File salida = new File("1\\2\\cambio.html");


PrintWriter out = new PrintWriter(salida);
16

String s = new String();

while((s = in.readLine())!= null)


{
int val = s.indexOf("<h1>");
if(val>=0)
{

JOptionPane.showMessageDialog(null,"Modifique el Titulo");
tit_pag =
JOptionPane.showInputDialog("Ingrese el Titulo de la Pagina");
out.println("<h1>"+tit_pag+"</h1>");
}
else
out.println(s);
}

in.close();
out.close();
borra.BorrarFichero(capt_ruta,archi);
return(capt_ruta);
}

//**************************************************************
*******************************

public String parrafo(String capt_ruta,String archi)throws


IOException
{
String contenido,op_parra,t;
FileReader arch1 = new FileReader(archi);
BufferedReader in = new BufferedReader(arch1);
File salida = new File("1\\2\\cambio.html");
PrintWriter out = new PrintWriter(salida);

String s = new String();


JOptionPane.showMessageDialog(null,"Modifique
Parrafo");
17

op_parra = JOptionPane.showInputDialog("Marque 'w' si


desea agregar parrafo...\nMarque 'e' si desea modificar algun
parrafo...");
if(op_parra.equals("w"))
{
while((s = in.readLine())!= null)
{
int val = s.indexOf("</h1>");
if(val>=0)
{
out.println(s);
do
{
id =
JOptionPane.showInputDialog("Ingrese el identificador con
enumeracion");
contenido =
JOptionPane.showInputDialog("Ingrese el contenido informativo de
la web");
out.println("<p
id="+id+">"+contenido+"</p>");
t =
JOptionPane.showInputDialog("Marque 'T' si va a agregar mas
parrafos");
}while(t.equals("t"));
}
else
out.println(s);
}
}
else
modif_parra(capt_ruta,archi);
in.close();
out.close();
borra.BorrarFichero(capt_ruta,archi);
return(capt_ruta);
}

//--------------------------------------------------------------
------------------------------
18

public String modif_parra(String capt_ruta,String


archi)throws IOException
{
FileReader arch1 = new FileReader(archi);
BufferedReader in = new BufferedReader(arch1);
File salida = new File("1\\2\\cambio.html");
PrintWriter out = new PrintWriter(salida);

String real = JOptionPane.showInputDialog("Si realmente


desea modificar un parrafo marque 'D'...");
if(real.equals("d"))
{
modif = JOptionPane.showInputDialog("Ingrese el
identificador del parrafo a modificar");
String s = new String();
while((s = in.readLine())!= null)
{
int val = s.indexOf("<p id="+modif);
if(val>=0)
{
String cambia_contenido =
JOptionPane.showInputDialog("Cambie el contenido informativo del
parrafo");
out.println("<p
id="+id+">"+cambia_contenido+"</p>");
}
else
out.println(s);
}
}
else
{
String y = new String();
while((y = in.readLine())!= null)
out.println(y);
}
in.close();
out.close();
borra.BorrarFichero(capt_ruta,archi);
return(capt_ruta);
19

}
//**************************************************************
*******************************
public String articulo(String capt_ruta,String archi)throws
IOException
{
String lis,list1,t,op_art;
FileReader arch1 = new FileReader(archi);
BufferedReader in = new BufferedReader(arch1);
File salida = new File("1\\2\\cambio.html");
PrintWriter out = new PrintWriter(salida);

JOptionPane.showMessageDialog(null,"Modifique los
Articulos");
String s = new String();
op_art = JOptionPane.showInputDialog("Marque 'w' si
desea agregar articulos...\nMarque 'e' si desea modificar algun
articulo...");
if(op_art.equals("w"))
{
while((s = in.readLine())!= null)
{
int val = s.indexOf("</body>");
if(val>=0)
{
do
{
lis =
JOptionPane.showInputDialog("Ingrese el identificador de un
articulo con numeracion");
list1 =
JOptionPane.showInputDialog("Ingrese la lista");
out.println("<li
il="+lis+">"+list1);
t =
JOptionPane.showInputDialog("Marque 'T' si va a agregar mas
parrafos");
}while(t.equals("t"));
out.println("</body>");
}
20

else
out.println(s);
}
}
else
modif_artic(capt_ruta,archi);
in.close();
out.close();
borra.BorrarFichero(capt_ruta,archi);
return(capt_ruta);
}
//--------------------------------------------------------------
------------------------------
public String modif_artic(String capt_ruta,String archi)throws
IOException
{
FileReader arch1 = new FileReader(archi);
BufferedReader in = new BufferedReader(arch1);
File salida = new File("1\\2\\cambio.html");
PrintWriter out = new PrintWriter(salida);

String real = JOptionPane.showInputDialog("Si realmente


desea modificar un articulo marque 'D'...");
if(real.equals("d"))
{
modif = JOptionPane.showInputDialog("Ingrese el
identificador del articulos que va a modificar");
String s = new String();
while((s = in.readLine())!= null)
{
int val = s.indexOf("<li il="+modif+">");
if(val>=0)
{
String cambia_artic =
JOptionPane.showInputDialog("Cambie el articulo de la web");
out.println("<li
il="+modif+">"+cambia_artic);
}
else
out.println(s);
21

}
}
else
{
String f = new String();
while((f = in.readLine())!= null)
out.println(f);
}
in.close();
out.close();
borra.BorrarFichero(capt_ruta,archi);
return(capt_ruta);
}
}
//**************************************************************
*******************************
22

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

CLASE 4

NOMBRE DE LA CLASE: tipo


MODIFICADORES DE ACCESO: public
Clase llamada desde el main() al introducir la opción 3 donde se
FUNCIÓN DE LA CLASE:
resuelve cada caso del menú para la modificación del archivo

CLASES FUNCIÓN MÉTODOS FUNCIÓN OBJETOS FUNCIÓN


Convierte el Utilizado en
objeto la clase tipo Creado en la
System.in a de tipo clase
isr para String para InputStream
utilizar los realizar la Reader de
InputStreamReader encabezado() isr
métodos de modificació tipo tipo para
la clase n del darnos los
Reader que encabezado caracteres
puede leer de la página sueltos
caracteres web
23

Clase cuyo Utilizado en


contructor la clase tipo
Creado en la
toma el de tipo
clase
objeto isr de String para
BufferedRead
la clase titulo() realizar la br
er de tipo tipo
InputStream modificació
para capturar
Reader n del tituto
toda la línea
para de la página
capturar web
toda la
línea. En
otro caso
BufferedReader toma el Utilizado en
objeto la clase tipo Creado en la
arch1 de la de tipo clase
clase String para directorio de
FileReader realizar la tipo tipo para
parrafo() borra
para modificació indicar el
capturar n del archivo que
toda la línea parrafo de se desea
del la página borrar
encabezado web
, titulo,
párrafo y
articulo
Creado en la
Utilizado en
clase File de
la clase tipo
tipo tipo para
de tipo
guardar el
Clase con String para
cambio
la que se realizar la
FileReader articulo() salida realizado al
pasa a modificació
encabezado,
archivo n del
en otro caso
articulo de
al titulo,
la página
párrafo y al
web
articulo
File Clase de modif_parra() Creado en arch1 Creado en la
tipo tipo con la clase tipo clase
la cual se de tipo FileReader
realizan los String para de tipo tipo
cambios del realizar la para capturar
archivo modificació toda la línea
n del del
24

encabezado,
en otro caso
24árrafo del titulo,
párrafo y
articulo
Creado en
Clase con
la clase tipo
la que se
de tipo
realiza el Para realizar
String para
PrintWritter despliegue modif_artic() out la salida del
realizar la
del archivo archivo
modificació
modificado
n del
en pantalla
articulo
Nuevo objeto
Utilizado creado donde
Efectuá la
para las se coloca el
String readLine() lectura de la s
cadenas de nuevo
cadena
caracteres archivo
modificado
REFLEXIÓN INDIVIDUAL SOBRE EL PROYECTO
25
26
iv

CONCLUSIONES

 Reforzamos nuestros conocimientos del Diseño Orientado a Objetos y los pasos


que el mismo lleva.

 Aprendimos a trabajar con diagramas UML y sus etapas y requerimientos.

 Reforzamos nuestro conocimiento sobre un Inventario y sus características.

 Conocimos como trabajaría un Sistema de Inventario dentro de una empresa.

 Realizamos eficientemente una entrevista lo cual nos ayudo a aclarar muchas


dudas.
v

BIBLIOGRAFÍAS

1. http://www.programacion.com/html/tutorial/curso

2. http://www.cogeco.ca/-ve311/jatutor9.html

3. http://www.exampledepot.com/egs/java.io/pkg.html

5. http://www.home.cogeco.ca/-ve311/jatutor7.html

6. http://java.sun.com/docs/books/tutorial/java/data/manipstrings.html

7. http://www.wikilearning.com/tutorial/tutorial_de_java-la_clase_stringbuffer/3938-62

Das könnte Ihnen auch gefallen