Vous êtes sur la page 1sur 6

Fundamentos de Programacin

Pgina: 60

UNIVERSIDAD CATLICA DE SANTA MARA FACULTAD DE CIENCIAS E INGENIERAS FSICAS Y FORMALES PROGRAMA PROFESIONAL DE INGENIERA DE SISTEMAS

PRCTICA N 11

Archivos
OBJETIVOS

Conocer y utilizar los conceptos sobre el manejo de archivos en Java Desarrollar ejercicios utilizando archivos

TEMAS A TRATAR
Archivos Clases que manipulan archivos

MARCO TERICO
Archivos
Son medios de almacenamiento persistente en un programa, en otras palabras, conservan el contenido a pesar de cerrar el aplicativo o apagar el computador. Los archivos pueden ser de distintos tipos: Archivos de texto, cuyos datos estn en formato ASCII Programas ejecutables en formato binario Imgenes (bitmaps, jpeg, gif) Sonido (wav) Video (avi) Nosotros trabajaremos con archivos planos o texto.

Clases que manipulan archivos


Java tiene un conjunto de clases predefinidas que manipulan archivos. Estas clases son File, FileReader, BufferedReader y FileWriter.

lvaro Fernndez, Guillermo Caldern

Prctica: 11

Fundamentos de Programacin

Pgina: 61

Clase File Es la clase que permite abrir un archivo. Permite crear la conexin con el archivo, si el archivo existe lo abre, si no existe lo crea. Constructor de la clase File: File <identificador> = new File(<direccin_archivo>); Ejemplos: File archivo = new File(alumnos.txt); File archivo_docente = new File(c:/trabajos/docente.txt); Mtodos de la clase File: String getName() = retorna el nombre del archivo. String getPath() = retorna la ruta del archivo. String getParent() = retorna la carpeta padre del archivo. boolean renameTo (File <otro_nombre>) = Permite modificar el nombre del archivo. boolean exists() = retorna true, si el archivo existe. Long length() = retorna el tamao del archivo en bytes. Clase FileReader Permite leer un archivo carcter por carcter. Constructor de la clase FileReader: FileReader <identificador> = new FileReader(<archivo_File>) Ejemplo: FileReader lector = new FileReader(archivo_docente); Mtodos de la clase FileReader: int read() = Lee un carcter. void close() = cierra el lector. Ejemplo de lectura:
File archivo = new File("Personas.txt"); FileReader lector = new FileReader(archivo); int car = lector.read(); while (car != -1){ Usuario.mensajeConsola((char) car); car = lector.read(); } lector.close();

lvaro Fernndez, Guillermo Caldern

Prctica: 11

Fundamentos de Programacin

Pgina: 62

Clase BufferedReader Permite leer un archivo carcter por carcter o lnea por lnea. Esta clase hace una lectura ms eficiente que la clase FileReader. Esta clase requiere un objeto FileReader para realizar la lectura. Constructor de la clase BufferedReader: BufferedReader <identificador> = new BufferedReader(<FileReader>) Ejemplo: BufferedReader lectorBR = new BufferedReader(lector); Mtodos de la clase BufferedReader: int read() = Lee un carcter. String readLine() = retorna una lnea completa, sin considerar el carcter de fin de lnea. void close() = cierra el lector. Ejemplo de lectura:
File archivo = new File("Personas.txt"); FileReader fr = new FileReader(archivo); BufferedReader br = new BufferedReader(fr); String linea = br.readLine(); while (linea != null){ Usuario.mensajeConsola(linea); linea = br.readLine(); } br.close();

Clase FileWriter Permite escribir datos en un archivo, para esto se debe vincularse un objeto File. Constructores de la clase FileWriter: FileWriter <identificador> = new FileWriter(<File>) Escribe en un archivo desde cero, si el archivo estaba lleno lo resetea. FileWriter <identificador> = new FileWriter(<File>, true) Escribe en un archivo con contenido previo, conserva el contenido anterior. Ejemplo: FileWriter escritor = new FileWriter(archivo); Mtodos de la clase FileWriter: void write() = escribe un carcter o un String.

lvaro Fernndez, Guillermo Caldern

Prctica: 11

Fundamentos de Programacin

Pgina: 63

Ejemplo de escritura:
File archivo = new File(personas.txt); FileWriter fw = new FileWriter(archivo, true); fw.write(Lnea grabada \r\n); fw.close();

Consideraciones importantes Para poder utilizar archivos en Java se debe importar el paquete java.io.* import java.io.*; Excepciones: Al usar archivos hay una probabilidad alta de tener errores (e.g., el archivo no existe, intentar escribir en un archivo protegido, etc.). Por lo tanto, debemos manejar esta situacin para evitar que nuestros programas se caigan constantemente. Para solucionar este problema, a todos los mtodos que manipulen sentencias de archivos se les debe agregar en su definicin throws IOException. Por ejemplo, si el mtodo main manipular archivos, entonces debera escribirse as:
public static void main(String[] args) throws IOException { ... }

Ejemplo:

import iic1103Package.*; import java.io.*; public class Principal { public static void main(String[] args) throws IOException{ File archivo = new File("Personas.txt"); FileReader fr = new FileReader(archivo); BufferedReader br = new BufferedReader(fr); String linea = br.readLine(); while (linea != null){ Usuario.mensajeConsola(linea); linea = br.readLine();} br.close(); } }

lvaro Fernndez, Guillermo Caldern

Prctica: 11

Fundamentos de Programacin

Pgina: 64

ACTIVIDADES
1. Pruebe los ejemplos definidos en el marco terico.

EJERCICIOS
1. Corregir el ejemplo de la clase FileReader para que muestre los nombres de las personas completos. Para esto, debe crear un archivo txt con un listado de personas. 2. Desarrolle un programa que lea un archivo con la siguiente estructura: Primera lnea, un nmero que representa la cantidad de personas. Dems lneas, listado de personas. El programa debe trasladas el listado de personas a un arreglo y luego mostrar el contenido de ese arreglo. 3. Desarrolle un programa que permita leer un archivo que contiene los nombres y tres notas de un grupo de alumnos, por ejemplo: Juan Gonzales 12 15 10 Gabriela Prez 10 12 10 Luego debe calcular el promedio de cada alumno y reescribir el archivo con el promedio respectivo, por ejemplo: Juan Gonzales 12 15 10 12.33 Gabriela Prez 10 12 10 10,67

CUESTIONARIO
1. 2. Qu otras clases existen para manipular archivos? Qu otros mtodos de todas las clases vistas en el marco terico, existen?

REFERENCIAS
[1] Poornachandra Sarang, Java Programming, McGraw-Hill, 2012 [2] Harvey Deitel y Paul Daitel, Cmo programar en Java, Prentice-Hall, 7ma. Edicin, 2004

lvaro Fernndez, Guillermo Caldern

Prctica: 11

Fundamentos de Programacin

Pgina: 65

[3] David Carlson, Eclipse Distilled, Addison-Wesley Professional, 2005 [4] http://www.aprenderaprogramar.com/index.php?option=com_content&view=ar ticle&id=233:arrays-arreglos-multidimensionales-en-java-declaracion-y-uso- ejemplos-y-ejercicios-resueltos-cu00904c&catid=58:curso-lenguaje- programacion-java-nivel-avanzado-i&Itemid=180

lvaro Fernndez, Guillermo Caldern

Prctica: 11

Vous aimerez peut-être aussi