Está en la página 1de 21

Archivos en Java

Programacin Orientada a Objetos

Flujos en Java
En java un archivo es un flujo de bytes almacenados en un dispositivo. Dicho flujo es representado en java por medio de clases que forman parte del lenguaje, declarados en el paquete java.oi.* Como ejemplo tenemor los flujos: System.in, System.out, System.err.

Entrada y salida I/O


Se hacen a travs de flujos (Streams) por medio de objetos del tipo Stream. Estos flujos se encuentran representados:
Flujos de entrada: Clase InputStream Flujos de salida: Clase OutputStream

Ambas son clases abstractas que deben redefinirse en las clases derivadas.

Jerarqua

Ejemplo escritura secuencial

Mtodos FileOutPutStream

Mtodos FileInputStream

Lectura Secuencial

La Clase File
Es buena practica utilizar el constructor para los flujos de entrada y salida que utiliza un objeto del tipo File Contiene informacin relacionada al archivo, como: fecha de ultima modificacion, permisos de acceso, extension, etc. Se emplea la clase File File miArchivo=new File(c:\datos\texto.txt); File miArchivo=new File(c:\datos, texto.txt);

Acceso Aleatorio

Acceso Aleatorio
Para hacer un acceso directo se requiere de la clase RandomAccessFile Cuyo constructor tiene la forma:

r.- solo lectura rw lectura escritura

Abrir un archivo de acceso Aleatorio

Otros mtodos
Void seek(long pos) Long length()

Leer y escribir objetos a un archivo

Serializacin de objetos
Para enviar objetos de un objeto a otro requiere ser reconstruido el flujo
Live Object Live Object

Frozen Object Stream

Serialize

DeSerialize

Serializacin

ObjectOutputStream & ObjectInputStream Trabaja como cualquier otro flujo de Streams Puede leer y escribir objetos completos desde un archivo. ObjectOutputStream: Serializa el objeto Java en un formato codificado de bytesy lo escribe en un ObjectOutputstream ObjectInputStream: Lee y reconstruye el objeto a partir de la informacion codificada.

Serialization

To Write into an ObjectOutputStream


FileOutputStream out = new FileOutputStream(afile) ; ObjectOutputStream oos = new ObjectOutputStream(out) ; oos.writeObject(Today) ; oos.writeObject(new Date()) ; oos.flush() ;

To Read from an ObjectInputStream


FileInputStream in = new FileInputStream(afile) ; ObjectInputStream ois = new ObjectInputStream(in) ; String today = (String) ois.readObject() ; Date date = (Date) ois.readObject() ;