Flujos y archivos

13
Flujos y archivos Unidad 6

description

Flujos y archivos. Unidad 6. Flujos y archivos. Todos los datos fluyen a través de una computadora desde una entrada hacia una salida Una fuente de entrada puede representar muchos tipos de entrada distintos: A rchivo de disco Teclado Conector (socket) de red. Flujo de E/S. - PowerPoint PPT Presentation

Transcript of Flujos y archivos

Page 1: Flujos y archivos

Flujos y archivos

Unidad 6

Page 2: Flujos y archivos

Flujos y archivos

• Todos los datos fluyen a través de una computadora desde una entrada hacia una salida

• Una fuente de entrada puede representar muchos tipos de entrada distintos:– Archivo de disco– Teclado– Conector (socket) de red.

Page 3: Flujos y archivos

Flujo de E/S

• Lo implementa con varias clases del paquete java.io • Representa todos los orígenes y destinos de los datos

detrás de una interfaz uniforme.

• Este flujo de datos se denomina también stream. • Flujo de entrada input stream que manda los datos

desde el exterior.• Flujo de salida output stream que dirige los datos

hacia los dispositivos de salida

Page 4: Flujos y archivos

E/S a un archivo

• La entrada/salida directa a archivo es una violación de seguridad de acceso.

• La clase File:– Pueden abstraerse las particularidades de cada sistema de archivos– Proporciona los métodos necesarios para obtener información sobre

los mismos. • Un File es el único objeto del paquete de E/S que referencia a un

archivo de disco real. • La clase File no especifica cómo se recupera o almacena la

información en los archivos describe las propiedades de un objeto archivo .

Page 5: Flujos y archivos

Archivos

• Los objetos archivo se pueden crear utilizando uno de los tres constructores disponibles:– File(String path); – File(String path, String name); – File(File dir, String name);

• Ejemplos:– File f1 = new File("/");– File f2 = new File("/","datos.dat");– File f3 = new File(f1, " datos.dat");

Page 6: Flujos y archivos

Métodos de la clase File

Page 7: Flujos y archivos

Operaciones básicas en archivos secuenciales

• a) Campo Elemento de datos básico,– Ejemplos:

• nombre de un empleado, una fecha o un valor leído por un sensor. – Llongitud fija o variable– Tipo de datos que contenga

• b) Registro se implementa como class en Java– Es un conjunto de campos relacionados que pueden tratarse como una unidad – Ejemplo:

• Registro “empleado” campos: nombre, RFC, fecha de contratación, etc. Un registro puede ser de longitud variable en el caso de que el número de campos pueda variar, esto dependerá de su diseño.

• c) Archivo es un conjunto de registros similares. – Los usuarios y las aplicaciones se refieren a él por un nombre que es único– Puede crearse y borrarse. – Restricciones al control de acceso suelen aplicarse a los archivos.

• d) Base de datos conjunto de datos relacionados. – El aspecto fundamental es que está diseñada para ser usada por varias aplicaciones diferentes. – Puede contener toda la información relativa a una organización o proyecto.

Page 8: Flujos y archivos

Creación de un archivo de acceso secuencial.

• La clase DataOutputStream es para escribir datos del tipo primitivo de Java

• Esta clase tiene un sólo constructor que toma un objeto de la clase OutputStream o sus derivadas como parámetro.

• El papel del objeto DataOutputStream proporciona acceso de alto nivel a un archivo convirtiendo los valores primitivos de Java en una secuencia de bytes– Almacenar datos de manera independiente de la plataforma o

para mandarlos por una red entre computadoras muy distintas • escriben al archivo utilizando un objeto de tipo

FileOutputStream.

Page 9: Flujos y archivos

Leer Archivo

• Primero se crea un Reader de tipo fichero.– clase FileReader. – La utiliza el buffer como origen de lectura.

• Ejemplo:• FileReader fr = new FileReader("datos.txt");

BufferedReader bf = new BufferedReader(fr);

Page 10: Flujos y archivos

Ejemplo: Leer un archivopackage leerarchivo;import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;public class LeerArchivo{

public static void main(String[] args) {try {

FileReader fr = new FileReader("archivo.txt");BufferedReader bf = new BufferedReader(fr);String sCadena;while ((sCadena = bf.readLine())!=null) {

System.out.println(sCadena);}

} catch (FileNotFoundException fnfe){fnfe.printStackTrace();

} catch (IOException ioe){ioe.printStackTrace();

}} }

Page 11: Flujos y archivos

Escribir Archivo

• Validar si el archivo existe o no.• También se puede sobre escribir sobre el archivo

directamente.– Depende del contenido que este tuviese.

• Resumiendo, bastará utilizar el método exists() de la clase File.

• String sFichero = “archivo.txt";• File fichero = new File(sFichero);•

Page 12: Flujos y archivos

Escribir archivo (cont.)

• Crear un BufferedWriter. – Esta clase nos ayuda a manejar los stream en

forma de buffer con métodos muy sencillos. – Este buffer necesita saber cual es el archivo. • clase FileWriter.

• El código quedaría así:• BufferedWriter bw = new BufferedWriter

(new FileWriter(sArchivo);

Page 13: Flujos y archivos

Ejemplo: Escribir en un archivopackage escribirarchivo;import java.io.*;public class EscribirArchivo {public static void main(String[] args) {

// Revisar si existe el archivoString sArchivo = "archivo3.txt";File arch = new File(sArchivo);if (arch.exists())

System.out.println("El archivo " + sArchivo + " ya existe");else {try{ BufferedWriter bw = new BufferedWriter(new FileWriter(sArchivo)); for (int x=0;x<10;x++) bw.write("Fila numero " + x + "\n"); bw.close();} catch (IOException ioe){ioe.printStackTrace();}}} }