Archivos

Solo disponible en BuenasTareas
  • Páginas : 5 (1164 palabras )
  • Descarga(s) : 0
  • Publicado : 15 de febrero de 2011
Leer documento completo
Vista previa del texto
 





Un Stream es simplemente una fuente o destino de bytes. Los streams más comunes son los archivos. También pueden ser caracteres de un string o bloque de memoria o bytes de un “socket”. La idea es que el programador los trate de la misma forma que archivos. En Java se usan diferentes mecanismos para dar formato a datos. Ofrece clases orientada a manejo de bajo nivel y otras dealto nivel. Da gran flexibilidad y hace uso de “filtros en cascada” para manipular los datos de entrada o salida. En general la flexibilidad en ocasiones resulta más “aparatosa” que lo que desearíamos.
1



Clase para lectura de Caracteres

Clase abstracta



Clase para escritura de caracteres

Clase abstracta

PrintWriter

2



Lectura de bytes
Clase abstracta

Escritura de bytes

Clase abstracta

3

Los archivos tienen como finalidad guardar datos de forma permanente. Una vez que acaba la aplicación los datos almacenados están disponibles para que otra aplicación pueda recuperarlos para su consulta o modificación.



En ocasiones, no se desea leer un archivo de principio a fin; sino acceder al archivo como una base de datos, donde se salta deun registro a otro; cada uno en diferentes partes del archivo. Java proporciona una clase RandomAccessFile para este tipo de entrada/salida.






Hay dos posibilidades para abrir un archivo de acceso aleatorio: Con el nombre del archivo:
miRAFile = new RandomAccessFile( String nombre,String modo );

Con un objeto File:



miRAFile = new RandomAccessFile( File fichero,String modo);



El argumento modo determina si se tiene acceso de sólo lectura ( r ) o de lectura/escritura ( r/w ). Por ejemplo, se puede abrir un fichero de una base de datos para actualización:
RandomAccessFile miRAFile = new RandomAccessFile( "/tmp/kk.dbf","rw" );



Acceso a la Información Los objetos RandomAccessFile esperan información de lectura/escritura de la misma manera que losobjetos DataInput / DataOutput, el acceso a todas las operaciones read() y write() de las clases DataInputStream y DataOutputStream . También se tienen muchos métodos para moverse dentro de un archivo: long getFilePointer();  Devuelve la posición actual del puntero del archivo void seek( long pos ); Coloca el puntero del archivo en una posición determinada.  La posición es dada como undesplazamiento en bytes desde el comienzo del archivo.  La posición 0 marca el comienzo de ese fichero. long length();






 



La clase OutputStream es una clase abstracta que especifica un número de operaciones para escribir un byte, para escribir un arreglo de bytes, y para cerrar el stream. Clases derivadas de ésta son FileOutputStream y ByteArrayOutputStream, las cuales son clasesconcretas (no abstractas). Sus operaciones de write envían bytes a archivo o memoria. Para dar formato a los datos (imprimir números y strings) se dispone de las clases “Writers”. PrintWriter es una clase de esa jerarquía, la cual recibe en su constructor el objeto con el cual podrá escribir (write) los bytes. Ej. FileOutputStream fout = new FileOutputStream(“output.dat”); PrintWriter pout = newPrintWiter(fout);

8

import java.io.*;

public class Copy { public static void main(String[] args) throws IOException { File inputFile = new File("farrago.txt"); File outputFile = new File("outagain.txt"); FileReader in = new FileReader(inputFile); FileWriter out = new FileWriter(outputFile); int c;
while ((c = in.read()) != -1) out.write(c); in.close(); out.close();
9

}

}



Además de formato podemos disponer de un buffer para mejorar el desempeño de algunos dispositivos de entrada y salida. El incorporar un buffer y con ello crear la cadena es un caso de filtrado, se usa: PrintWriter pout = new PrintWriter( new BufferedOutputStream (new FileOutpurStream(“Output.dat”)));

PrintWriter




Los filtros se pueden construir usando cualquier combinación de...
tracking img