Vous êtes sur la page 1sur 27

E/S con Archivos

INF 103

Almacenamiento secundario

La memoria de la computadora es considerado almacenamiento primario. El almacenamiento primario es voltil. Cuando queremos preservar la informacin es necesario guardarlo en un almacenamiento de tipo no voltil: este es el almacenamiento secundario.

Archivos
Son el almacenamiento secundario por excelencia. Existen varios tipos de archivos:

archivos de texto archivos binarios secuenciales

Archivos de texto

Son aquellos archivos que slo almacenan datos de tipos carcter o cadenas de caracteres. Son utilizados para:

Informacin del tipo registro. Guardar informacin que no necesita de un formato especfico.

Guardar informacin de cualquier otro tipo en estos archivos no es una solucin ptima.

Archivos binarios de acceso secuencial

A diferencia de los archivos de texto, en estos archivos se almacenan datos de todo tipo (char, long, float, int, etc.). Los tipos de datos que se almacenan en estos archivos se guardan de manera binaria, de acuerdo a la extensin que tengan los tipos de datos.

Archivos binarios de acceso secuencial

Los datos se guardan de manera secuencial, es decir, uno detrs de otro. Cuando queremos acceder a un dato en este tipo de archivos, tenemos que leer cada dato, hasta encontrar aquel que buscamos.

Para traer la informacin, un programa abre un stream sobre una fuente de informacin (un fichero, memoria, un socket) y lee la informacin serialmente, de esta forma:

Similarmente, un programa puede enviar informacin a un destino externo abriendo un stream sobre un destino y escribiendo la informacin serialmente, de esta forma:

No importa de donde venga o donde vaya la informacin y tampoco importa el tipo de los datos que estn siendo ledos o escritos, los algoritmos para leer y escribir son casi siempre los mismos.

Leer
abrir un stream mientras haya informacin leer informacin cerrar el stream

Escribir
abrir un stream mientras haya informacin escribir informacin cerrar el stream

El paquete java.io contiene una coleccin de clases stream que soportan estos algoritmos para leer y escribir. Estas clases estn divididas en dos rboles basndose en los tipos de datos (caracteres o bytes) sobre los que opera.

Archivos de Texto

Para poder leer archivos de texto en Java debemos crear un objeto de tipo BufferedReader. BufferedReader es una clase que contiene mtodos predefinidos para poder leer una secuencia de bits.

Para poder guardar archivos de texto en Java debemos crear un objeto de tipo PrintWriter. PrintWriter es una clase que contiene mtodos predefinidos para escribir datos mediante una secuencia de bits.

BufferedReader

El constructor que vamos a utilizar para crear un BufferedReader es:


BufferedReader fileIn = new BufferedReader(new FileReader(fileName);

Ya que tenemos el objeto tipo BufferedReader podemos utilizar varios mtodos para leer, l ms comn es:
fileIn.readLine();

Este mtodo lee una lnea y la devuelve o devuelve null si llegamos al final del archivo y no hay nada que leer.

PrintWriter

El constructor que vamos a utilizar para crear un PrintWriter es:


PrintWriter fileOut = new PrintWriter(new FileWriter(fileName);

Ya que tenemos el objeto PrintWriter podemos utilizar varios mtodos para escribir, los ms comunes son:
fileOut.print(String); fileOut.println(String);

Estos dos mtodos reciben un String y lo imprimen en el archivo, el segundo mtodo le pone un carcter de fin de lnea al final.

Cmo abrir archivos en Java?

Cmo abrir archivos en Java?

Hasta ahora, toda la E/S (I/O) ha sido con la consola. Los objetos ms primitivos de E/S con la consola System.in, System.out y System.err estn comprendidos dentro de BufferedReader y PrintWriter que permiten una interfaz ms conveniente y refinada. Pero tambin puede ser usados para el manejo de archivos.

Cmo abrir archivos en Java?

La E/S con archivos queda disponible al utilizar las siguientes declaraciones:


BufferedReader fileIn = new BufferedReader (new FileReader(nombredearchivo)); PrintWriter fileOut = new PrintWriter (new FileWriter(nombredearchivo)); PrintWriter fileApnd = new PrintWriter (new FileWriter(nombredearchivo, true);

Cmo abrir archivos en Java?

El argumento nombredearchivo que aparece en las declaraciones es simplemente un string que indica el nombre del archivo que se desea abrir. Cuando se abre un archivo para grabar (output), su contenido se borra. Si queremos abrir un archivo para agregar (append) informacin, debemos utilizar el constructor FileWriter en la declaracin fileApnd. Si le pasamos false a este constructor, logramos el mismo efecto que el constructor para la declaracin de fileOut Si abrimos un archivo que no existe para grabar sobre l, ste ser creado por el sistema y comenzar, desde luego, estando vaco.

La utilizacin de objetos de E/S con archivos

La utilizacin de objetos de E/S con archivos

La utilizacin es la misma que para la E/S con la consola.


// leyendo de un archivoint x = Integer.parseInt(fileIn.readLine());

// leyendo de la consolaint x = Integer.parseInt(stdIn.readLine());

La utilizacin de objetos de E/S con archivos

Existen dos reas que requieren atencin adicional cuando manejamos E/S con archivos:

La inicializacin de los objetos de E/S con archivos, puede ser una tarea no tan exitosa. Puede ser que archivo que se desea abrir no encuentre, lo cual lanza la excepcin FileNotFoundException. Esto podrar ser porque la cadena entregada al constructor puede ser el nombre de un archivo inexistente o que no se encuentra en el directorio de trabajo del programa. Al momento de leer o escribir a un archivo se puede lanzar la excepcin IOException.

Cmo cerrar archivos en Java?

Cmo cerrar archivos en Java?

Cada archivo abierto ocupa recursos del sistema, por tanto debemos cerrar cada archivo que deja de utilizarse. infile.close(); outFile.close(); Tanto el mtodo close de la clase BufferedReader como el de la clase PrintWriter lanzan la excepcin IOException.

En resumen

Cuando hablamos de manejo de archivos, tenemos que tener en cuenta 3 pasos:


1. 2.

3.

Abrir el archivo. Realizar la operacin deseada: leer y/o escribir datos en el archivo. Cerrar el archivo.

Vous aimerez peut-être aussi