Este documento presenta conceptos sobre el manejo de archivos en Java. Explica el uso de clases como File, FileDialog y FileDescriptor para trabajar con archivos. También cubre temas como lectura y escritura de archivos usando flujos de entrada y salida, y métodos para obtener información sobre archivos como canRead() y length(). El documento concluye con referencias bibliográficas.
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
14-Unidad 4: Manejo de archivos y seguimiento del proyecto
1. Unidad 4: Manejo de
archivos y seguimiento del
proyecto
Autor(es):
Ciencias de la Ingeniería
Carrera de Sistemas
Programación Orientada a Objetos
Mg. Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
Laguas@uisrael.edu.ec
Aguaszoft@Outlook.es
2. “Ser grande en las cosas pequeñas, ser
noble y heroica en los detalles insípidos
de la vida cotidiana, es una virtud tan
rara como ser digna de canonización.”
(Anónimo)
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Programación Orientada a Objetos
3. Resultado de Aprendizaje
• Analizar metodologías y herramientas tecnológicas, que
mejor se ajusten a las necesidades de las organizaciones.
9. Otras clases de java.io
• File
o Nos ayuda a especificar nombres de archivos y
directorios, además nos da métodos para
averiguar información acerca de un archivo como
su path completo, o si tiene permisos de escritura,
etc.
• FileDescriptor
o El equivalente a una manija de bajo nivel para un
archivo o socket
10. java.awt.FileDialog
• Despliega una ventana del sistema para que
el usuario seleccione un archivo
• Debe de pertenecer a un Frame
• Es una ventana modal, es decir cuando se le
da show() bloquea el resto de la aplicación
hasta que el usuario seleccione un archivo o
cancele la operación
12. FileDialog
• show()
o Hace la ventana de FileDialog visible y bloquea la
ejecución de la aplicación hasta que se seleccione un
archivo
• setMode(int)
o Establece si la ventana de FileDialog es para leer
un archivo (LOAD) o para escribir un archivo (SAVE)
13. FileDialog
• getFile()
o Regresa como String el archivo seleccionado
• getDirectory()
o Regresa como String el directorio al cual pertenece
el archivo seleccionado
• En caso de no haber seleccionado ningún
archivo ambos regresan null
14. Ejemplo
public class Archivo1 extends Frame implements ActionListener{
static Archivo1 f;
Button boton = new Button("Abrir");
TextArea despliega = new TextArea();
FileDialog dialogo = new FileDialog(this);
Image figura;
String nombreArchivo, nombreDirectorio;
File archivo;
public Archivo1(){
super();
setTitle("Archivero");
setSize(200,200);
setLocation(300,300);
figura = Toolkit.getDefaultToolkit().getImage("canino.gif");
setIconImage(figura);
add(despliega,"Center");
add(boton,"South");
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
f.dispose();
System.exit(0);
}});
boton.addActionListener(this);
pack();
show();
}
15. Ejemplo
public void actionPerformed(ActionEvent e){
Button b = (Button) e.getSource();
if(boton.getLabel()=="Abrir"){
dialogo.setMode(FileDialog.LOAD);
dialogo.show();
nombreArchivo = dialogo.getFile();
nombreDirectorio = dialogo.getDirectory();
if (nombreDirectorio!=null && nombreArchivo!= null){
archivo = new File(nombreDirectorio,nombreArchivo);
despliegaArchivo(archivo);
boton.setLabel("Guardar");
}
}else{
dialogo.setMode(dialogo.SAVE);
dialogo.setFile(nombreArchivo);
dialogo.setDirectory(nombreDirectorio);
dialogo.show();
nombreArchivo = dialogo.getFile();
nombreDirectorio = dialogo.getDirectory();
if (nombreDirectorio!=null && nombreArchivo!= null){
archivo = new File(nombreDirectorio,nombreArchivo);
guardaArchivo(archivo);
}
boton.setLabel("Abrir");
}
}
20. Ejemplo
public void despliegaPropiedades(File f){
despliega.setText("Propiedades del Archivo: "+f.getName()+"n");
despliega.append("canRead()>> "+String.valueOf(f.canRead())+"n");
despliega.append("canWrite()>> "+String.valueOf(f.canWrite())+"n");
despliega.append("exists()>> "+String.valueOf(f.exists())+"n");
despliega.append("getAbsolutePath()>> "+f.getAbsolutePath()+"n");
despliega.append("getPath()>> "+f.getPath()+"n");
despliega.append("length()>> "+String.valueOf(f.length())+"n");
}
public class Archivo2 extends Frame implements ActionListener{
21. System.out.println()
• out variable de la clase System del
paquete lang
• out variable de tipo PrintStream
• La clase PrintStream tiene una serie de
métodos print y println para poder
escribir una representación legible para
cada tipo de dato primitivo en Java
• No arroja excepciones
22. PrintStream desaprobado
• PrintStream ya está desaprobado
(deprecated)
• Es recomendable utilizar PrintWriter
• Asi se tiene el soporte para escribir carácteres
Unicode
• Los métodos de PrintStream eliminan la
parte alta de los carácteres para transformarlos
en código Ascii de 8 bits
23. Leyendo del teclado
• Utilizaremos InputStreamReader para
poder leer Unicode
• InputStreamReader transforma los bytes
leidos en carácteres Unicode
• Envolveremos al InputStreamReader en
un BufferedReader por eficiencia
24. Ejemploimport java.io.*;
public class Teclado {
public static void main(String[] args){
String linea="";
InputStreamReader entrada = new InputStreamReader(System.in);
BufferedReader teclado = new BufferedReader(entrada);
System.out.println("Teclea líneas de texto");
System.out.println("Teclea q y <enter> para terminar");
try{
while(linea.compareTo("q")!=0){
linea = teclado.readLine();
System.out.println(">> "+linea);
}
}catch(IOException e){
System.out.println(e.getMessage());
}
System.out.println("Fin del Programa");
try{
teclado.close();
entrada.close();
}catch(IOException e){
System.out.println(e.getMessage());
}
}
}
25. Referencias
Bibliográficas
• LEOBARDO, L. (2006). METODOLOGÍA DE
LA PROGRAMACIÓN ORIENTADA A
OBJETOS, México, Alfaomega.
• LOPEZ, J., ALBERCA G. (2009): GUÍA DE
FUNDAMENTOS DE LA PROGRAMACIÓN,
Loja – Ecuador, UTPL
26. Gracias
Mg. Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
Laguas@uisrael.edu.ec
Aguaszoft@Outlook.es