Download Flujos y archivos
Document related concepts
no text concepts found
Transcript
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:
– Archivo de disco
– Teclado
– Conector (socket) de red.
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
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 .
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");
Métodos de la clase File
Operaciones básicas en archivos
secuenciales
•
a) Campo Elemento de datos básico,
–
Ejemplos:
•
–
–
•
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.
–
–
–
•
nombre de un empleado, una fecha o un valor leído por un sensor.
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.
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.
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);
Ejemplo: Leer un archivo
package 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();
}
} }
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);
•
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);
Ejemplo: Escribir en un archivo
package escribirarchivo;
import java.io.*;
public class EscribirArchivo {
public static void main(String[] args) {
// Revisar si existe el archivo
String 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();
}
}
} }