Documentos de Académico
Documentos de Profesional
Documentos de Cultura
OBJETIVO ALCANZADO:
Manejar archivos de randomicos y archivos de objetos comprendiendo en primer lugar los conceptos tanto de archivos
como lo de métodos utilizados y estos conceptos fueron profundizados con las prácticas realizadas.
ACTIVIDADES DESARROLLADAS
1. Se realizó un análisis del ejercicio planteado y así desarrollando primero el Diagrama de clases para tener
definido el proceso que vamos a seguir.
Diagrama:
Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001
2. Después ya en el programa comenzamos a programar comenzando por la creación de los paquetes, luego
las clases dentro de ellas los métodos correspondientes y también sus atributos tomando en cuenta todo lo
necesario para la ejecución del programa.
También dentro de los paquetes se crearon las ventanas para poder desarrollar la interfaz gráfica.
Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001
4. Descripción de la clases ControladorVideojuego es una clases importante porque es donde se crean todos que
serán llamados dentro de la interfaz. Dentro de este método se crea un atributo listaJ de tipo lista (Video juego)
la cual será necesaria y llamada dentro de toda la clase.
Se crea el constructor donde se inicializa la listaJ como un ArrayList y también se generan los setters and
getters.
Código
public void leerArc(String ruta) {
RandomAccessFile a = null;
try {
a = new RandomAccessFile(ruta, "r");
listaJ.clear();
for (int i = 0; true; i++) {
Videojuego v = new Videojuego();
a.seek(i * 72);
v.setCodigo(a.readInt());
String nom = "";
for (int e = 0; e < 20; e++) {
nom += a.readChar();
}
v.setNombre(nom);
String tip = "";
for (int t = 0; t < 10; t++) {
tip += a.readChar();
}
v.setTipo(tip);
v.setPrecio(a.readDouble());
listaJ.add(v);
}
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
} finally {
try {
a.close();
} catch (IOException ex) {
}
}
}
Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001
Código
public void crearV(int cod, String nom, String tip, double pre) {
Videojuego v = new Videojuego();
v.setCodigo(cod);
v.setNombre(nom);
v.setTipo(tip);
v.setPrecio(pre);
listaJ.add(v);
}
Código
try {
RandomAccessFile a = new RandomAccessFile(ruta, "rw");
a.seek(0);
for (Videojuego j : this.listaJ) {
a.writeInt(j.getCodigo());
for (int i = 0; i < 20; i++) {
a.writeChar(j.getNombre().charAt(i));
}
for (int e = 0; e < 10; e++) {
a.writeChar(j.getTipo().charAt(e));
}
a.writeDouble(j.getPrecio());
}
a.close();
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
}
}
Código
public Videojuego buscarV(int cod) {
leerArc("LJuegos.dat");
for (Videojuego v : this.listaJ) {
if (v.getCodigo() == cod) {
Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001
return v;
}
}
Videojuego vn = new Videojuego();
return vn;
}
Código
public void actualizar(int cod, String nom, String tip, double pre) {
for (int i = 0; i < this.listaJ.size(); i++) {
if (this.listaJ.get(i).getCodigo() == cod) {
Videojuego j = new Videojuego();
j.setCodigo(cod);
j.setNombre(nom);
j.setTipo(tip);
j.setPrecio(pre);
listaJ.set(i, j);
}
}
}
Código
public boolean eliminar(int cod) {
Videojuego v = buscarV(cod);
if (v != null) {
return listaJ.remove(v);
}
return false;
}
Código
public void listarJ() {
if (existeArc()) {
leerArc("LJuegos.dat");
for (Videojuego v : listaJ) {
System.out.println(v);
Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001
}
} else {
JOptionPane.showMessageDialog(null, "Aun no existe un archivo de Juegos.");
}
}
Código
public boolean existeArc() {
File a = new File("LJuegos.dat");
if (a.exists()) {
return true;
}
return false;
}
6. Descripción de la clases ControladorCliente es una clases importante porque es donde se crean todos que
serán llamados dentro de la interfaz. Dentro de este método se crea un atributo listaC y juegosC de tipo lista
(Cliente) la cual será necesaria y llamada dentro de toda la clase.
Se crea el constructor donde se inicializa la listaC Y juegosC como un ArrayList y también se generan los
setters and getters.
Código
public void leerArc(String ruta) {
FileInputStream a = null;
try {
a = new FileInputStream(ruta);
ObjectInputStream archivoLectura = new ObjectInputStream(a);
listaC.clear();
while (true) {
Cliente c = (Cliente) archivoLectura.readObject();
this.listaC.add(c);
}
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
} catch (ClassNotFoundException ex) {
} finally {
try {
Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001
a.close();
} catch (IOException ex) {
}
}
}
Código
public void guardarC(String ruta) {
FileOutputStream a = null;
try {
a = new FileOutputStream(ruta);
ObjectOutputStream aE = new ObjectOutputStream(a);
for (Cliente c : listaC) {
aE.writeObject(c);
}
aE.close();
a.close();
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
}
}
Codigo
public Cliente buscarC(int cod) {
leerArc("LClientes.dat");
for (Cliente c : listaC) {
if (c.getCodigo() == cod) {
return c;
}
}
Cliente cn = new Cliente();
return cn;
}
Código
Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001
public void actualizarC(int cod, String nom, String ape, String dir, String tel, List<Videojuego> juegos) {
for (int i = 0; i < listaC.size(); i++) {
if (listaC.get(i).getCodigo() == cod) {
Cliente c = new Cliente();
c.setCodigo(cod);
c.setNombre(nom);
c.setApellido(ape);
c.setDireccion(dir);
c.setTelefono(tel);
c.setJuegos(juegos);
listaC.set(i, c);
}
}
}
Código
public void nuevoC(int cod, String nom, String ape, String dir, String tel, List<Videojuego> juego) {
Cliente c = new Cliente();
c.setCodigo(cod);
c.setNombre(nom);
c.setApellido(ape);
c.setDireccion(dir);
c.setTelefono(tel);
listaC.add(null);
guardarC("LClientes.dat");
}
Código
public boolean eliminarC(int cod) {
Cliente c = buscarC(cod);
if (c != null) {
return listaC.remove(c);
}
return false;
}
Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001
Código
public boolean existeArc() {
File a = new File("LClientes.dat");
if (a.exists()) {
return true;
}
return false;
}
Código
public void listarC() {
if (existeArc()) {
leerArc("LClientes.dat");
for (Cliente c : listaC) {
System.out.println(c);
}
} else {
JOptionPane.showMessageDialog(null, "Aun no existe un archivo de Clientes.");
}
}
N. Posteriormente se comenzó a enlazar los métodos ya creados, con la interfaz para que esta funcione.
RESULTADO(S) OBTENIDO(S):
Ventana principal
Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001
Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001
Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001
Si seleccionamos la pestaña Compra nos aparece agregar la compra que se a realizado y también listado para listar
las compras que se hayan realizado
CONCLUSIONES:
Es posible concluir que el manejo de archivos en el lenguaje Java permite que el programa guarde todos los datos e
información de una forma permanente y sobre todo en dispositivos físicos para así en caso de que sea necesario
poderlos recuperar. También como conclusión podemos decir que el paquete de java.io es la encargada de obtener
y proveer los archivos y rutas lógicas permitiendo de esta manera que el usuario tenga un manejo ordenado y fácil de
los archivos y directorio. Además para el programador es fácil realizar una búsqueda con los archivos de acceso
aleatorio ya que su acceso no es secuencial y de tal manera no es necesario recorrer el archivo por o tanto facilita la
codificación.
RECOMENDACIONES:
Se debe tomar en cuenta los erros que pueden surgir al momento de leer o escribir en los archivos para corregir estos
errores es necesario utilizar las excepciones ya que nos proporcionan una gran ayuda.
También se debe considerar que al crear un archivo de acceso aleatorio debemos tomar en cuenta el tipo de dato que
ingresemos ya que este depende de la cantidad de bytes y cada tipo tiene diferente cantidad de bytes.
Resolución CS N° 076-04-2016-04-20
VICERRECTORADO DOCENTE Código: GUIA-PRL-001
Firma de estudiante:
Resolución CS N° 076-04-2016-04-20