Sunteți pe pagina 1din 11

Unidad 6.

Almacenando datos

Módulo Programación
modalidad @vanza
Unidad 6. Almacenando datos
1.- Introducción
1.1..- Excepciones
dos excepciones más comunes al manejar archivos son:
• FileNotFoundException: Si no se puede encontrar el archivo.
• IOException: Si no se tienen permisos de lectura o escritura o
si el archivo está dañado. (Visto en la Unidad 4)
2.- Concepto de flujo.
La clase Stream representa un flujo o corriente de datos, es
decir, un conjunto secuencial de bytes,
Unidad 6. Almacenando datos
3.- Clases relativas a flujos.
Existen dos tipos de flujos:
• Los flujos de bytes (8 bits) se usan para manipular datos binarios, legibles
solo por la maquina (por ejemplo un fichero de programa). El tratamiento
del flujo de bytes viene determinado por dos clases abstractas que son
InputStream y OutputStream. Estas dos clases son las que definen los
métodos entre los que destacan read() y write() que leen y escriben bytes
de datos respectivamente.

• Los flujos de caracteres (16 bits) se usan para manipular datos legibles por
humanos (por ejemplo un fichero de texto). Vienen determinados por dos
clases abstractas: Reader y Writer. Dichas clases manejan flujos de
caracteres Unicode. De ellas derivan subclases concretas que
implementan los métodos destacando los métodos read() y write() que, en
este caso, leen y escriben caracteres de datos respectivamente.
Unidad 6. Almacenando datos
4.- Flujos.
4.1.- Flujos predefinidos. E/S estándar.
4.2.- Flujos predefinidos. E/S estándar. Ejemplo.
4.3.- Flujos basados en bytes.
4.4.- Flujos basados en caracteres.
4.5.- Rutas de los ficheros.
Unidad 6. Almacenando datos
4.3.- Flujos basados en bytes.
Unidad 6. Almacenando datos
4.4.- Flujos basados en caracteres.
Unidad 6. Almacenando datos
5.- Trabajando con ficheros
5.1.- Escritura y lectura
• fichero secuencial, para acceder a un dato debemos recorrer todo el fichero desde
el principio hasta llegar a su posición
• fichero de acceso aleatorio podemos posicionarnos directamente en una posición
del fichero, y ahí leer o escribir.
5.2.- Ficheros binarios y de texto.
Para archivos de texto, se puede utilizar la clase FileReader y FileWriter:

File archivo = new File (“c:\\fich.txt"); FileWriter fichero=null;


FileReader fr = new FileReader (arch); fichero = new FileWriter("c:\\fich2.txt");
BufferedReader br = new BufferedReader(fr); PrintWriter pw= new PrintWriter(fichero);
... pw.println("Linea de texto");
String linea = br.readLine();
Unidad 6. Almacenando datos
5.2.1.- Ficheros binarios y de texto.
• Para ficheros binarios, tenemos la clase FileInputStream:
int trama;
File f = new File("C:\\test.bin");
FileInputStream flujoEntrada = new FileInputStream(f);

BufferedInputStream fEConBuffer = new BufferedInputStream(flujoEntrada);

tama = fEConBuffer.available(); System.out.println("Bytes: " + tama);


System.out.println("Leyendo 50 bytes....");
byte bytearray[] = new byte[50];

if (fEntradaConBuffer.read(bytearray) != 50)
System.out.println("No se pudieron leer 50 bytes");

System.out.println(new String(bytearray, 0, 50));


fEntradaConBuffer.close();
Unidad 6. Almacenando datos
5.3.- Modos de acceso.
5.4.- Acceso secuencial.
utilizamos el writeUTF() que proporciona la clase DataOutputStream,

5.5.- Acceso aleatorio.


Usaremos la clase RandomAccessFile que implementa los interfaces DataInput y
DataOutput.

6.- Aplic. del almacenamiento de inf en ficheros.


Unidad 6. Almacenando datos
7.- Utilización de los sistemas de ficheros.
7.1.- Clase File.
Proporciona un representación abstracta de ficheros y directorios.
File miFile=new File("\\\\mimaquina\\download\\prueba.txt");

7.2.- Interface FilenameFilter.


Permite filtrar ficheros.

7.3.- Creación y borrar ficheros y directorios.


Unidad 6. Almacenando datos
8.- Almacenamiento de objetos en ficheros.

8.1.- Serialización: utilidad.


La serialización es un proceso por el que un objeto se convierte en una secuencia
de bytes. Esto permite guardar un objeto en un archivo.

Para leer y escribir objetos serializables a un stream se utilizan las clases java:
ObjectInputStream y ObjectOutputStream.

S-ar putea să vă placă și