Está en la página 1de 19

ARCHIVOS Y FLUJOS

DEFINICIÓN

• El manejo de archivos en Java se hace mediante el concepto de flujo (stream) o canal, también
denominado secuencia; éste conduce los datos entre el programa y los dispositivos externos, además
puede estar abierto o cerrado.
• Con las clases y métodos proporcionados por el paquete de clases de entrada y salida java.io, se pueden
tratar archivos secuenciales, de acceso directo, archivos indexados, etc.

LOS ARCHIVOS TIENEN COMO FINALIDAD GUARDAR DATOS DE FORMA PERMANENTE

• Una vez que termina la ejecución del programa, los datos almacenados quedan disponibles para que otro
programa pueda recuperarlos, así como para su consulta o modificación.
UN ARCHIVO DE DATOS, O SIMPLEMENTE UN
ARCHIVO ES UNA COLECCIÓN DE REGISTROS
RELACIONADOS ENTRE SI CON ASPECTOS COMUNES
ORGANIZADOS PARA UN PROPÓSITO ESPECÍFICO

POR EJEMPLO:
Un archivo de una clase escolar contiene un conjunto de
registros de los estudiantes de esa clase
Archivo de nóminas de una empresa
Archivo de inventarios de una empresa
• Un archivo es una estructura diseñada para contener datos que están organizados de tal modo que puedan
recuperarse fácilmente, borrarse, actualizarse o almacenarse de nuevo en el archivo con todos los
cambios realizados.
• Según las características del soporte empleado y el modo en que se organizan los registros, se consideran
dos tipos de acceso a los registros de un archivo:
• Secuencial – Implica el acceso a un archivo según el orden de almacenamiento de sus registros, uno tras otro.
• Directo – Supone un acceso a un registro determinado, sin que ello involucre la consulta de registros prcedentes.
• En Java, un archivo sencillamente es una secuencia de bytes que son la representación de los datos
almacenados; Java dispone de clases para trabajar las secuencias de bytes como datos de tipos básicos
(int, double, string, etc.); incluso para escribir o leer objetos del archivo; el diseño del
archivo es el que establece la forma de manejar las secuencias de bytes, secuencialmente o acceso
directo.
• Un flujo es una abstracción que se refiere a una La apertura de un archivo supone establecer una
corriente de datos que van desde un origen o fuente conexión del programa con el dispositivo que lo
(productor) hasta un destino (consumidor); entre uno y contiene – por el canal que comunica el archivo con
otro debe existir una conexión o canal (pipe) por donde el programa fluyen la secuencia de datos.
circulan los datos.
Abrir un archivo supone crear un
objeto que queda asociado con un flujo. Al comenzar
la ejecución de un programa en Java se crean 3
objetos flujo, canales por los que pueden fluir datos
de entrada o salida; éstos son objetos definidos en la
clase System:

System.in; de entrada estándar; permite el ingreso


al programa de flujos de bytes desde el
teclado.
System.out; de salida estándar; permite al
programa imprimir datos por pantalla

System.err; de entrada estándar de errores;


permite al programa imprimir errores por
pantalla.
CLASE FILE

Un archivo consta de un nombre, la ruta donde se ubica:


Ejemplo: C:\pasaje.dat
Este identificador del archivo es una cadena de caracteres y se transmite el constructor del flujo de entrada o
salida que procesa el archivo.

FileOutputStream f = new FileOutputStream(“C:\pasaje.dat”);


Los constructores de flujos esperan recibir un archivo como cadena y recibir un objeto de la clase File;
este tipo de objeto contiene el nombre del archivo, la ruta y otras propiedades.
• La clase File define métodos para conocer propiedades de l archivo, tales como la última modificación,
permisos de acceso, tamaño, etc. también para cambiar algunas características del archivo.
• Los constructores de File permiten inicializar el objeto con el nombre de un archivo y la ruta donde se
encuentra e inicializarlo con otro objeto File como ruta y el nombre del archivo:

public File(String nombreCompleto)


Crea un objeto File con el nombre y la ruta del archivo pasados como argumento.

public File(String ruta, String nombre)


Crea un objeto File con la ruta y el nombre del archivo pasados como argumento

public File(File ruta, String nombreCompleto)


Crea un objeto File con un primer argumento que a su vez es un objeto File con la ruta y el
nombre del archivo como segundo argumento.
EJEMPLOS:

File miArchivo = new File(“C:\LIBRO\Almacen.dat”);


Crea un objeto File con el archivo Almacén.dat que está en la ruta C:\LIBRO

File otro = new File (“COCINA”, “Enseres.dat”);


Crea un objeto File con el archivo Enseres.dat en el ruta C:\COCINA
INFORMACIÓN DE UN ARCHIVO
Métodos más útiles para conocer los atributos de un archivo o directorio:
public boolean exists( ); Devuelve true si existe el archivo o directorio
public boolean canWrite( ); Devuelve true si se puede escribir en el archivo, es decir, si no es
de solo lectura.
public boolean canRead( ); Devuelve true si es de solo lectura.
public boolean isFile( ); Devuelve true si es un archivo.
public boolean isDirectory( ); Devuelve true si el objeto representa un directorio.
public boolean isAbsolute( ); Devuelve true si el directorio es la ruta completa
public long length( );Devuelve el numero de bytes que ocupa el archivo; si el objeto es un
directorio devuelve cero.
public long lastModified( ); Devuelve la hora de la última modificación; sólo es útil para
establecer comparaciones con otros valores devueltos por el mismo método.
EJEMPLO:
MOSTRAR POR PANTALLA LOS ARCHIVOS Y SUBDIRECTORIOS QUE CONFORMAN UN DIRECTORIO

import java.io.*
public class Directorio {
public static void main (String [ ] a){
File dir;
String [ ] cd;
if (a.length > 0) {
dir=new File (a[0]);
if (dir.exists() && dir.isDirectory()) {
//se obtiene la lista de elementos
cd = dir.list();
System.out.println(“Elementos del directorio “ + a[0]);
for (int i=0; i<cd.length; i++)
System.out.println(cd[i]);
}
else
System.out.println(“Directorio vacío”);
}
else
System.out.println(“No se ha especificado directorio”);
}// clase
MÉTODOS PARA MODIFICAR EL ARCHIVO

Java también dispone de métodos


para modificar archivos:

- Modificar el nombre
- Marcarlo de sólo lectura
- Eliminar archivos o directorios
- Crear directorios
- Etc.
FLUJOS Y JERARQUÍA DE CLASES Java declara dos clases que derivan directamente de la clase
Object:
InputStream y OutputStream.
Sus clases derivadas más importantes se muestan en la figura.
Todo archivo de entrada y de salida se puede considerar como
una secuencia de bytes de bajo nivel, a partir de la cual se
construyen flujos de más alto nivel para proceso de datos
complejos.
Las clases FileinputStream y FileOutputStream se utilizan para
leer o escribir bytes en un archivo; objetos de estas dos clases
son los flujos de entrada y de salida respectivamente, a nivel
de bytes.
EJEMPLO:

FileOutputStream mf = new FileOutputStream


(“Temperatura.dat”);

El flujo mf se asocia al archivo Temperatura.dat del directorio


predeterminado.
Las operaciones que a continuación se realicen con mf
escriben secuencias de bytes en el archivo Temperaturas.dat
Métodos de la Clase FileInputStream

La clase FileInputStream tiene


métodos para leer secuencias de
bytes en un flujo.

Todos estos métodos son public.


Es importante tener en cuenta la
excepción que puedan lanzar para
hacer un tratamiento de la excepción
cuando se invoquen.
Métodos de la Clase FileOutputStream

La clase FileOnputStream tiene


métodos para escribir secuencias de
bytes en un flujo asociado a un
archivo.

Todos estos métodos son public.


Es importante tener en cuenta la
excepción que puedan lanzar para
hacer un tratamiento de la excepción
cuando se invoquen.
EJEMPLO USANDO SECUENCIAS DE BYTES EN UN FLUJO:

Dado el archivo jardines.txt se desea escribir toda su información en el archivo


jardinold.txt

CORRER Y EJECUTAR UN PROGRAMA DESDE EL SÍMBOLO DEL SISTEMA

CMD Ubicarse en tu directorio de trabajo


C:\Users\alira\Documents\NetBeansProjects\BBDD_JDBC\src\primero

Establecer la ruta al JDK : set path=%path%;C:\Program Files\Java\jdk-14.0.2\bin

javac Directorio.java Archivo compilado .class

java Directorio
EJEMPLO ARCHIVOS USANDO
SECUENCIAS DE CARACTERES – I

1.- ESCRIBIR EN EL ARCHIVO - USANDO LA CLASE


FILEWRITER
2.- LEER EL CONTENIDO DEL FICHERO MOSTRANDO SU
CONTENIDO EN PANTALLA – USANDO LA CLASE FILEREADER
ARCHIVOS USANDO SECUENCIAS DE CARACTERES - II

VIDEO – CREACIÓN, ESCRIBIR, LEER Y BORRAR ARCHIVOS

HTTPS://WWW.YOUTUBE.COM/WATCH?V=JRXID8JFLIC

ACTIVIDAD: HACER LOS EJERCICIOS SUGERIDOS EN EL VIDEO.


ACTIVIDAD:

VIDEO USANDO SECUENCIAS DE CARACTERES III CON ARCHIVOS:

HTTPS://WWW.YOUTUBE.COM/WATCH?V=ETQN4EFYN7K

REALIZAR LOS EJERCICIOS SUGERIDOS EN EL VIDEO

También podría gustarte