1. UNIVERSIDAD ISRAEL
CIENCIAS DE LA INGENIERÍA
CARRERA DE SISTEMAS DE INFORMACIÓN
PROGRAMACIÓN ORIENTADA A OBJETOS
SEMESTRE 2021 A
LABORATORIO S6
TEMA: Aplicaciones Java (Manejo de Archivos)
PROFESOR: Mg. Luis Fernando Aguas Bucheli
QUITO, 2021
2. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
1. TEMA: Aplicaciones Java (Manejo de archivos)
2. OBJETIVOS:
• Adquirir los conceptos básicos relacionados con la POO
• Reconocer las características de la POO
3. OBJETIVOS DE DESARROLLO SOSTENIBLE:
4. INTRODUCCION:
La clase File tiene tres constructores
• File(String path)
• File(String path, String name)
• File(File dir, String name)
El parámetro path indica el camino hacia el directorio donde se encuentra el archivo,
y name indica el nombre del archivo. Los métodos más importantes que describe esta clase son
los siguientes:
• String getName()
• String getPath()
• String getAbsolutePath()
• boolean exists()
• boolean canWrite()
• boolean canRead
• boolean isFile()
• boolean isDirectory()
3. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
• boolean isAbsolute()
• long lastModified()
• long length()
• boolean mkdir()
• boolean mkdirs()
• boolean renameTo(File dest);
• boolean delete()
• String[] list()
• String[] list(FilenameFilter filter)
Mediante un ejemplo explicaremos algunos de los métodos de la clase File.
Creamos un objeto fichero de la clase File, pasándole el nombre del archivo, en este caso, el
nombre del archivo código fuente ArchivoApp1.java.
File fichero=new File("ArchivoApp1.java");
Si este archivo existe, es decir, si la función exists devuelve true, entonces se obtiene
información acerca del archivo:
• getName devuelve el nombre del archivo
• getPath devuelve el camino relativo
• getAbsolutePath devuelve el camino absoluto.
• canRead nos indice si el archivo se puede leer.
• canWrite nos indica si el archivo se puede escribir
• length nos devuelve el tamaño del archivo, si dividimos la cantidad devuelta entre 1024
obtenemos el tamaño del archivo en KB.
if(fichero.exists()){
System.out.println("Nombre del archivo "+fichero.getName());
System.out.println("Camino "+fichero.getPath());
System.out.println("Camino absoluto "+fichero.getAbsolutePath());
System.out.println("Se puede escribir "+fichero.canRead());
System.out.println("Se puede leer "+fichero.canWrite());
System.out.println("Tamaño "+fichero.length());
}
La salida del programa es la siguiente:
Nombre del arachivo ArchivoApp1.java
Camino ArchivoApp1.java
Camino absoluto c:JBuilder2myNumericoarchivo1ArchivoApp1.java
Se puede escribir true
Se puede leer true
Tamaño 1366
Para obtener la lista de los archivos del directorio actual se crea un nuevo objeto de la clase File
fichero=new File(".");
Para obtener la lista de los archivos que contiene este directorio se llama a la función
miembro list, la cual nos devuelve un array de strings.
4. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
String[] listaArchivos=fichero.list();
for(int i=0; i<listaArchivos.length; i++){
System.out.println(listaArchivos[i]);
}
La salida es la siguiente
archivo1.jpr
archivo1.html
ArchivoApp1.java
ArchivoApp1.~jav
Filtro.java
Filtro.~jav
Creación de un filtro
Un filtro es un objeto de una clase que implemente el interface FilenameFilter, y tiene que
redefinir la única función del interface denominada accept. Esta función devuelve un dato de
tipo boolean. En este caso, la hemos definido de forma que si el nombre del archivo termina
con una dterminada extensión devuelve true en caso contrario devuelve false. La
función endsWith de la clase String realiza esta tarea tal como se ve en la porción de código que
viene a continuación. La extensión se le pasa al constructor de la clase Filtro para inicializar el
miembro dato extension.
import java.io.*;
public class Filtro implements FilenameFilter{
String extension;
Filtro(String extension){
this.extension=extension;
}
public boolean accept(File dir, String name){
return name.endsWith(extension);
}
}
Para obtener la lista de archivos con extensión .java en el directorio actual, creamos un objeto
de la clase Filtro y se lo pasamos a la función list miembro de la clase File.
listaArchivos=fichero.list(new Filtro(".java"));
for(int i=0; i<listaArchivos.length; i++){
System.out.println(listaArchivos[i]);
}
La salida es ahora la siguiente
ArchivoApp1.java
Filtro.java
5. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
5. DESARROLLO:
• Ingresamos a Netbeans
• Creamos un nuevo proyecto:
• Colocamos como nombre
6. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
• Damos clic en Finalizar
• Eliminamos la clase que se creó por defecto
7. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
• Teniendo
• Damos clic en agregar JFrame
8. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
• Colocamos el siguiente nombre
Damos clic en Finalizar
9. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Vamos a la paleta y seleccionamos Menu Bar
Vamos a la paleta y seleccionamos Menu item
10. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Vamos a la paleta y seleccionamos otro Menu item
Vamos a la paleta y seleccionamos otro Menu item
11. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
A los Menu ítems de la pestaña File, les cambiamos el nombre, teniendo:
Al Menú ítem de la pestaña Edit, le cambiamos de nombre, teniendo:
12. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Incluimos un JtextArea
Declaramos las siguientes variables:
FileDialog dl;
FileDialog dl1;
String p;
File f;
FileReader archivo;
String linea;
BufferedReader filtrado;
13. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
BufferedWriter filtrado1;
FileWriter archivo1;
Damos doble clic en abrir y colocamos el siguiente código
dl = new FileDialog(this, "AguasZoft-Abrir",FileDialog.LOAD);
dl.setSize(500,500);
dl.setVisible(true);
String nomfich = dl.getFile();
try {
14. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
f=new File(dl.getDirectory()+(p=dl.getFile()));
archivo = new FileReader(f);
filtrado = new BufferedReader(archivo);
while ( (linea = filtrado.readLine()) != null) {
jTextArea1.append(linea);
archivo.close();
filtrado.close();
}
}
catch (FileNotFoundException e1) {
jTextArea1.append(e1.getMessage());
}
catch (IOException e2) {
jTextArea1.append(e2.getMessage());
}
Teniendo:
Damos doble clic en guardar y colocamos el siguiente código
15. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
dl1 = new FileDialog(this, " AguasZoft -Guardar", FileDialog.SAVE);
dl1.setSize(500, 500);
dl1.setVisible(true);
try {
String contenido=jTextArea1.getText();
f=new File(dl1.getDirectory()+(p=dl1.getFile()));
archivo1 = new FileWriter(f);
filtrado1 = new BufferedWriter(archivo1);
filtrado1.write(contenido,0,contenido.length());
filtrado1.flush();
jTextArea1.append("n"+linea+"n");
archivo1.close();
filtrado1.close();
}
catch (FileNotFoundException e1) {
jTextArea1.append(e1.getMessage());
}
catch (IOException e2) {
jTextArea1.append(e2.getMessage());
}
Teniendo:
16. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Damos doble clic en limpiar y colocamos el siguiente código
jTextArea1.setText("");
teniendo:
17. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Compilamos y Ejecutamos
18. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
19. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
20. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
6. BIBLIOGRAFIA:
21. Ciencias de la Ingeniería
Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información