Você está na página 1de 9

INSTRUCTIVO – Manejo de Archivos

Tecnología en Análisis y Desarrollo de Sistemas de Información


Proceso: Ejecución de la Formación Profesional Centro Latinoamericano de
Procedimiento: Desarrollo Curricular Especies Menores
Ing. Diana Lorena Velandia Vanegas

Introducción

Los programas necesitan comunicarse con su entorno, tanto para recoger


datos e información que deben procesar, como para devolver los
resultados obtenidos.

Streams
Un stream es una conexión entre el programa y la fuente o destino de los datos. La información se
traslada en serie (un carácter a continuación de otro) a través de esta conexión.

Esto da lugar a una forma general de representar muchos tipos de comunicaciones.

Desde Java 1.0, la entrada y salida de datos del programa se podía hacer con clases derivadas de
InputStream (para lectura) y OutputStream (para escritura).
Estas clases tienen los métodos básicos read() y write() que manejan bytes y que no se suelen
utilizar directamente.

En Java 1.1 aparecieron dos nuevas familias de clases, derivadas de Reader y Writer, que
manejan caracteres en vez de bytes.
Estas clases resultan más prácticas para las aplicaciones en las que se maneja texto.

1
INSTRUCTIVO – Manejo de Archivos
Tecnología en Análisis y Desarrollo de Sistemas de Información
Proceso: Ejecución de la Formación Profesional Centro Latinoamericano de
Procedimiento: Desarrollo Curricular Especies Menores
Ing. Diana Lorena Velandia Vanegas

BufferedReader in = new BufferedReader(new FileReader("autoexec.bat"));

● Con esta línea se ha creado un stream que permite leer del archivo autoexec.bat. Además, se ha
creado a partir de él un objeto BufferedReader (que aporta la característica de utilizar buffer).
● Los caracteres que lleguen a través del FileReader pasarán a través del BufferedReader, es
decir utilizarán el buffer.

Buffer
Un buffer es un espacio de memoria intermedia que actúa de “colchón” de datos. Cuando se
necesita un dato del disco se trae a memoria ese dato y sus datos contiguos, de modo que la
siguiente vez que se necesite algo del disco la probabilidad de que esté ya en memoria sea muy
alta.
Algo similar se hace para escritura, intentando realizar en una sola operación de escritura física
varias sentencias individuales de escritura.

Clases Java .io


Palabra Palabra
Palabra InputStream, OutputStream Lectura/Escritura de bytes
Reader, Writer Reader, Writer Lectura/Escritura de caracteres
File Archivos
String, CharArray, ByteArray, StringBuffer Memoria (a través del tipo primitivo indicado)
Buffered Buffer
Filter Filtro
Data Intercambio de datos en formato propio de Java
Object Persistencia de objetos
Print Imprimir

Entrada y Salida en Archivos


JFileChooser
http://docs.oracle.com/javase/7/docs/api/javax/swing/JFileChooser.html

Antes de leer o escribir en un archivo primero debemos hacer uso del elemento de Swing llamado
JFileChooser, el cual nos permitirá seleccionar el archivo que queremos procesar.

La clase JFileChooser proporciona un UI para elegir un fichero de una lista. Un selector de ficheros
es un componente que podemos situar en cualquier lugar del GUI de nuestro programa. Sin

2
INSTRUCTIVO – Manejo de Archivos
Tecnología en Análisis y Desarrollo de Sistemas de Información
Proceso: Ejecución de la Formación Profesional Centro Latinoamericano de
Procedimiento: Desarrollo Curricular Especies Menores
Ing. Diana Lorena Velandia Vanegas

embargo, normalmente los programas los muestran en diálogos modales porque las operaciones
con ficheros son sensibles a los cambios dentro del programa. La clase JFileChooser hace sencillo
traer un diálogo modal que contiene un selector de ficheros.
Los selectores de ficheros se utilizan comúnmente para dos propósitos.
- Para presentar una lista de ficheros que pueden ser abiertos por la aplicación.
- Para permitir que el usuario seleccione o introduzca el nombre de un fichero a grabar.

Existen dos métodos principales, los cuales retornan lo siguiente:

1. JFileChooser.CANCEL_SELECTION, si el usuario hace clic en Cancelar.


2. JFileChooser.APPROVE_SELECTION, si el usuario pulsa en OK / Abrir / Guardar

Ejemplo 1
Primero crearemos un JDialog que nos permita tener el JFileChooser.

En Netbeans crearemos ahora un Frame que contenga un botón. Este será el encargado de abrir
el JFileChooser que se encuentra en el Dialogo.

3
INSTRUCTIVO – Manejo de Archivos
Tecnología en Análisis y Desarrollo de Sistemas de Información
Proceso: Ejecución de la Formación Profesional Centro Latinoamericano de
Procedimiento: Desarrollo Curricular Especies Menores
Ing. Diana Lorena Velandia Vanegas

FileEscoger archivo = new FileEscoger(this, true);


archivo.setVisible(true);

Para capturar los eventos del JFileChooser deberemos capturar el evento, para ello agregaremos
el actionListener y en este método realizaremos lo siguiente:

Ejemplo 2
Filtrar la lista de ficheros
Por defecto, un selector de ficheros muestra todos los ficheros y directorios que detecta. Un
programa puede aplicar uno o más filtros de ficheros a un selector de ficheros para que el selector
sólo muestre algunos de ellos. El selector de ficheros llama al método accept del filtro con cada
fichero para determinar si debería ser mostrado. Un filtro de ficheros acepta o rechaza un fichero
basándose en algún criterio como el tipo, el tamaño, el propietario, etc.
JFileChooser soporta tres clases de filtrado. Los filtros se chequean en el orden aquí listado. Por
eso un filtro del segundo tipo solo puede filtrar aquellos ficheros aceptados por el primero, etc.
Para agregar un filtro se debe crear una variable de tipo FileNameExtensionFilter así:

FileNameExtensionFilter filtro = new FileNameExtensionFilter("Formatos


Permitidos", "txt","jpg");
jFileChooser1.setFileFilter(filtro);

Y agregarla al jFileChooser que se quiera aplicar.

Clase File
Un objeto de la clase File puede representar un archivo o un directorio. Tiene los siguientes
constructores:
File(String name)
File(String dir, String name)
File(File dir, String name).

Métodos de la clase File

4
INSTRUCTIVO – Manejo de Archivos
Tecnología en Análisis y Desarrollo de Sistemas de Información
Proceso: Ejecución de la Formación Profesional Centro Latinoamericano de
Procedimiento: Desarrollo Curricular Especies Menores
Ing. Diana Lorena Velandia Vanegas

(Ver API http://docs.oracle.com/javase/7/docs/api/java/io/File.html )

Métodos Función que realizan


boolean isFile() true si el archivo existe
long length() tamaño del archivo en bytes
long lastModified() fecha de la última modificación
boolean canRead() true si se puede leer
boolean canWrite() true si se puede escribir
delete() borrar el archivo
RenameTo(File) cambiar el nombre

Métodos de la clase File (directorios)

Métodos Función que realizan


boolean isDirectory() true si existe el directorio
mkdir() crear el directorio
delete() borrar el directorio
String[] list() devuelve los archivos que se encuentran en el directorio

Métodos de la clase File (paths)


Métodos Función que realizan
String getPath() Devuelve el path que contiene el objeto File
String getName() Devuelve el nombre del archivo
String getAbsolutePath() De vuelve el path absoluto (juntando el relativo al actual)
String getParent() Devuelve el directorio padre

Ejemplo 3
Realizaremos una aplicación que permita la realización de pedidos de pizza y los almacene en un
archivo txt.

Para ello haremos uso de una Clase llamada Archivo que tendrá dos métodos: leerArchivo y
escribirEnArchivo.

5
INSTRUCTIVO – Manejo de Archivos
Tecnología en Análisis y Desarrollo de Sistemas de Información
Proceso: Ejecución de la Formación Profesional Centro Latinoamericano de
Procedimiento: Desarrollo Curricular Especies Menores
Ing. Diana Lorena Velandia Vanegas

6
INSTRUCTIVO – Manejo de Archivos
Tecnología en Análisis y Desarrollo de Sistemas de Información
Proceso: Ejecución de la Formación Profesional Centro Latinoamericano de
Procedimiento: Desarrollo Curricular Especies Menores
Ing. Diana Lorena Velandia Vanegas

Ejemplo 4
Para este ejemplo lo que haremos es leer el archivo de los pedidos y mostrarlo en una tabla.

7
INSTRUCTIVO – Manejo de Archivos
Tecnología en Análisis y Desarrollo de Sistemas de Información
Proceso: Ejecución de la Formación Profesional Centro Latinoamericano de
Procedimiento: Desarrollo Curricular Especies Menores
Ing. Diana Lorena Velandia Vanegas

Ejercicio
Realizar una aplicación que permita al usuario seleccionar un
archivo txt que contiene datos de actores de cine con la siguiente
estructura. Se debe validar que la extensión del archivo sea txt y que
el nombre no empiece por la letra J.
Cuando se lea el archivo se deberán mostrar los actores en una
Lista en donde el usuario podrá escoger los actores que desea
eliminar. La aplicación deberá borrar del archivo los actores
seleccionados y renombrar el archivo con el nombre “eliminados.txt”.

8
INSTRUCTIVO – Manejo de Archivos
Tecnología en Análisis y Desarrollo de Sistemas de Información
Proceso: Ejecución de la Formación Profesional Centro Latinoamericano de
Procedimiento: Desarrollo Curricular Especies Menores
Ing. Diana Lorena Velandia Vanegas

Lectura de Archivos de Excel

En ciertas ocasiones es necesario realiza la lectura de archivos de hoja de cálculo, para importar
información a una base de datos por ejemplo. Java tiene una librería que permite procesar los
archivos de Excel que se llama jxl.

Ejemplo 5
Realizaremos una aplicación que lea el listado de clase y lo muestre en un JTable de Java.

Nota: Para leer archivos Excel se debe agregar al proyecto la librería jxl la cual se encuentra anexa
a este material.

Práctica – Taller 6
- Desarrollar para la próxima clase el taller 9 sobre Manejo de
Archivos. El taller esta anexo a este material.

Você também pode gostar