Introduccion A Archivos en Java

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 12

INGENIERIA EN INFORMÁTICA

“2°G”

PROGRAMACIÓN ORIENTADA A
OBJETOS
- UNIDAD 6: Archivos -

Presenta:
Ana Yunuen Hinojosa González - 12650171

Junio 2013
*Contenido:
6.1-Archivos (concepto y clasificación) 3
6.2-La clase File 4
(ejemplos de la clase File) 5
6.3-Apertura de Archivos 7
6.4-Excepciones de Archivos 8
6.5-Operaciones con Archivos y Mantenimiento 10
6.6-Archivos Secuenciales………………………………………………………………………………………………………..11

6.7-Archivos Directos……………………………………………………………………………………………………………….12

Bibliografía………………………………………………………………………………………………………………………………13
Definición de Archivo:
Los archivos de datos son un conjunto de datos estructurados que se tratan como
una unidad y se encuentran almacenados en un dispositivo de almacenamiento
externo.
Los archivos permiten el almacenamiento permanente y la manipulación de un
gran número de datos.

Un archivo se considera formado por una colección de datos lógicamente


relacionados, a los que denominaremos registros, cada registro agrupa datos
también con una relación lógica entre sí a los que se denomina campos y es el
programador el encargado de estructurar los archivos de tal forma que se adapten
a las necesidades del programa ya que, en realidad, Java considera los archivos
simplemente como flujos secuenciales de bytes.

Clasificación:
En los archivos de datos se pueden destacar dos organizaciones fundamentales:
secuencia/ y la directa o aleatoria, siendo posible trabajar en Java con ambos
tipos de organizaciones.

Organización Secuencia:
La organización secuencia/ implica que los datos se almacenan
consecutivamente en el soporte externo, no siendo posible acceder
directamente a un determinado dato si no se recorren todos los anteriores.

Organización Directa:
La organización directa permite el posicionamiento directo en un determinado
lugar de un archivo para leer la información allí almacenada y no obliga al
almacenamiento de la misma en forma secuencial. Además, a diferencia de la
secuencial, la organización directa permite modificar un dato previamente
almacenado, eliminarlo o insertar uno nuevo en cualquier posición del archivo sin
que sea necesario efectuar una copia de todo el archivo cada vez
que se realiza una de estas operaciones.
La Clase File
Los objetos de la clase File no especifican cómo se almacena o recupera la
información en un archivo, sólo describen las propiedades del mismo y permiten
obtener información sobre él.

Nota: Un objeto de la clase File posibilita la obtención de información sobre las


propiedades tanto de un archivo como de un subdirectorio y permite la modificación
de algunos de sus atributos. Los métodos delete y renameTo de la clase File
permiten borrar y renombrar archivos.

Los objetos File se crean mediante los siguientes constructores:

public File (java.io.File dir, java.lang.String


nombre)
Donde el primer parámetro es un objeto File que referencia un directorio y
el segundo el
nombre del archivo.
public File (java.lang.String path)
El parámetro es el nombre de un directorio o bien el nombre completo,
incluyendo ruta de
acceso, de un archivo.
public File (java.lang.String path, java.
1ang.Ctring nombre)
Donde el primer parámetro es el nombre del directorio y el segundo el nombre
del archivo.

Ejemplos
//ruta relativa, el directorio actual
File arch = new File ("ejemplo.dat");
/ * ruta absoluta, en el siguiente caso especifica el
directorio
raiz en Windows que utiliza un separador ( \ ) distir.-
to de ünix (/ ) * /
File arch = new File (“\ \ ' I , "ejemplo.dat");
File arch = new File("/", "ejemplo.dat");

Contenido de un Subdirectorio:

Ejemplo File:
Ejemplo File:

APERTURA DE ARCHIVOS
Para crear, escribir o leer un archivo se requiere establecer un flujo a/desde él; las
clases capaces de crear un flujo de un archivo requieren una referencia a un
objeto File o un nombre de archivo como argumento. Estas clases son:
 La subclase FileOutputCtream hereda de OutputCtream y
permite crear un flujo de salida para escribir bytes en un archivo. Los
constructores son:

public FileOutputStream(java.lang.String nombre).


public FileOutputStream (java.io. File file)
/ / f i l e es un objeto F i l e
public FileOutputStream (java. lang. String nombre, boolean
a ñ a d i r)
Los tres constructores lanzan excepción. Con los dos primeros si el archivo existe
y se abre de esta forma, se destruye. El último constructor permite añadir datos a
un archivo existente, cuyo nombre viene especificado por nombre.

Ejemplo:
Fileoutputstream f1= new FileOutputCtream("info.txt");

Un flujo debe cerrarse cuando ya no vaya a utilizarse con las sentencias


suficientes:

fl.close();
f2. Close();

 La subclase FileInputStream hereda de Inputstream y permite


crear un flujo para la lectura de bytes desde un archivo.la lectura comienza
desde el principio del archivo y cuando se leen datos del mismo, para que
se puedan volver a leer los datos del principio es necesario cerrar el flujo y
volverlo a abrir.los constructores son:

public FileInputStream()java.io.File f i l e )
public FileInputCtream(java.lang.String nombre)

EXCEPCIONES EN ARCHIVOS
Cuando se trabaja con archivos se pueden producir errores de entrada/salida y
Java obliga a prever este tipo de errores y recoger las excepciones que pueda
lanzar el sistema.

Cuando el programador diseña un método tiene dos opciones con este tipo de
excepciones: listarías en la cabecera del mismo o bien recogerlas y tratarlas. Si
está sobrescribiendo un método del que no puede modificar la interfaz, se verá
obligado a recoger estas excepciones y tratarlas en el propio método.
Las excepciones en el trabajo con archivos pueden ser lanzadas por los métodos
de escritura y lectura, pero además hay que tener en cuenta que la apertura de un
archivo puede producir una excepción IOException cuando falla la operación;
por ejemplo, si se intenta abrir para lectura un archivo que no existe, y el cierre de
un archivo con el método close también puede producir una IOException.
Por otra parte, los archivos en Java terminan con una marca de fin de archivo y
cuando en la lectura de un archivo se llega a dicha marca se puede lanzar una
Exception.
Ejemplo:
Capturar y tratar las excepciones en la apertura y cierre de un archivo.
public class ControlExcepciones
{
public static void main (String [] args)
{
AbreYCierra arch = new AbreYCierra ( );
arch. leer ( );

import java.io.*;
public class AbreYCierra
{
FileInputStream fl= null;
public void leer0

{
File f = new File("texto.txt");
F1 = new FileInputCtream(f);
{
catch(IOException e)
}
System.out.println(e);
}
finally
{
try
if (fl! = null)
fl.close();
}
catch(IOException e)
System.out.println (e);
}
System.out.println(e);

System.out.println(“Final”);
}
}

Nota: Al trabajar con archivos, las excepciones pueden ser lanzadas


por los métodos de lectura y escritura y también por las operaciones de
apertura y cierre del archivo. El compilador obliga a tratar dichas
excepciones.
Nota: Cuando se detecta el fin de flujo:
El método read de inputstream devuelve - 1.
El método readLine devuelve null.
Los métodos que se exponen en DataInputStream generan
una EOFException.

OPERACIONES CON ARCHIVOS Y MANTENIMIENTO

Las operaciones con archivos son aquellas que tratan con su propia estructura,
tales como la creación, apertura o cierre de los mismos y que son proporcionadas
por el lenguaje, en este caso Java. Además de utilizar este tipo de operaciones al
trabajar con archivos, será necesario diseñar métodos que efectúen tareas de
mantenimiento.

El mantenimiento de un archivo incluye las siguientes operaciones:

Actualización:
Altas. Operación de incorporar al archivo un nuevo registro.
Bajas. Acción de eliminar un registro de un archivo. Las bajas pueden ser de dos
tipos:

LOGICA: Se efectúa colocando en el registro que se desea borrar una bandera o


indicador que lo marque como borrado. Admite la posterior recuperación de la
información.

FISICA: Implica la desaparición de esa información del archivo de forma que no


pueda ser recuperada por operaciones posteriores. Puede efectuarse mediante la
sobre escritura del registro o bien creando un nuevo archivo que no incluya dicho
registro.
MODIFICACIONES: Proceso de modificar la información almacenada en un
determinado registro de un archivo.

Consulta:
-De un único registro.
-De todos los registros del archivo.

ARCHIVOS SECUENCIALES
En los archivos secuenciales los registros se almacenan unos al lado de otros
sobre el soporte externo y se pueden designar por números enteros consecutivos;
sin embargo, estos números de orden no se pueden utilizar como funciones de
acceso y para realizar el acceso a un registro resulta obligatorio pasar por los que
le preceden.
Además, este tipo de archivos no pueden abrirse simultáneamente para lectura y
escritura y terminan con una marca de final de archivo.
Los archivos secuenciales en Java se pueden abrir para lectura con:
FileInputStreamFileReader
Y para escritura:
FileOutputStreamFilewriter

Cuando un archivo secuencial se abre para lectura, un puntero de datos


imaginario se coloca al principio del archivo, de forma que la lectura siempre
comenzará por el principio. Cuando un archivo secuencial se abre para escritura,
el puntero de datos imaginario puede colocarse al principio del archivo, con lo que
si éste existía se perderá cualquier información almacenada en el mismo, o bien al
final:
public FileOutputStream(java.lang.String nombre, boolean)
public Filewriter (Java.lang.String nombre, boolean )

Un caso particular de archivos secuenciales son los archivos de texto, que están
formados por una serie de líneas cada una de las cuales se encuentra constituida
por una serie de caracteres y separadas por una marca de final de línea.

Ejemplo de lectura desde un archivo:

ARCHIVOS DIRECTOS
Los registros en un archivo de acceso directo han de ser de longitud fija. En un
archivo directo, el orden físico de los registros no tiene por qué corresponderse
con aquel en el que han sido introducidos, y los registros son accesibles
directamente mediante la especificación de un número que indica la posición del
registro con respecto al origen del archivo. Los archivos directos, también
denominados aleatorios, se abren para lectura y escritura al mismo tiempo.
En Java RandomllccessFile es la clase que permite la apertura de archivos de
acceso directo y ofrece el método seek (posición) para el posicionamiento sobre
un determinado registro del archivo.

Nota: A diferencia de los secuenciales:


Los archivos directos se abren para lectura y escritura al
mismo tiempo.
Permiten el posicionamiento sobre un determinado
registro, sin que sea necesario recorrer los anteriores.
* *REFERENCIAS BIBLIOGRÁFICAS:
1. Joyanes Aguilar Luis, Fernández Azuela Matilde.
Java 2: Manual de Programación.
2. Froufe Quintas Agustín.
Java 2: Manual del usuario y tutorial.

También podría gustarte