Manejo de Ficheros en JAVA
description
Transcript of Manejo de Ficheros en JAVA
CREACIÓN, LECTURA Y ESCRITURA DE FICHEROS EN JAVA.
Manejo de Ficheros en JAVA
JOSÉ LUIS REDONDO GARCÍA. GRUPO QUERCUS ENGINEERING SOFTWARE,
UEX
2
Índice
Introducción.Paquete java.io.*:
2.1. Byte streams. 2.2. Char streams.
Tratamiento convencional de ficheros. Procesado de tokens. Acceso directo a ficheros.
3. E/S estándar.4. Serialización.5. Ejemplos y Ejercicios.
3
Introducción
La E/S en Java se gestiona mediante streams.Por un stream (canal o flujo) fluye la
información desde un origen hacia un destino: Se lee o crea desde el origen. Se escribe o envía hacia el destino.
Los streams se manejan de forma independiente del origen y destino concretos.
También existen clases para E/S de ficheros no orientadas a streams.
Se definen en la librería java.io.*;
4
Introducción
Stream de Entrada:
Stream de Salida:
5
Paquete java.io (I)
El paquete java.iose encuentra organizado en las siguientes jerarquías de clases: Streams orientados a bytes. Streams orientados a chars. Tratamiento convencional de ficheros. Procesado de tokens. Acceso directo a ficheros.
6
Paquete java.io (II)
7
Paquete java.io (III)
8
Paquete java.io (III)
9
Byte streams (I)
Operan con bytes(8 bits).La lectura se define en la clase InputStream,
mientras que la escritura se define en la clase OutputStream.
Estas clases son abstractas.Sus herederas definen fuentes y destinos de datos
concretas.Se dividen en dos grupos:
E/S básica E/S filtrada.
10
Byte streams (II)
Métodos de lectura (InputStream): int read(); int read(byte[] b); int read(byte[] b, int off, int len);
Métodos de escritura (OutputStream): void write(intb); void write(byte[] b); void write(byte[] b, int off, intlen);
•Apertura con el constructor.•Cierre con el método:
public void close() throws IOException;
11
Byte streams (III)
Filtros: Clases para filtrar la información en los streams. Heredan de FilterInputStream o FilterOutputStream. Se usan asociándolas con un stream básico.
Ejemplos: FileInputStreamTest.java, FileOutputStreamTest.java ByteArrayInputStreamTest.java DataInputStreamTest.java, PrintStreamTest.java
12
Char Streams (I)
Operan con chars (16 bits).La lectura se define en la clase Reader,
mientras que la escritura se define en la clase Writer.
Estas clases son abstractas.Sus herederas definen fuentes y destinos de
datos concretas.Se dividen en dos grupos:
E/S básica E/S filtrada.
13
Char Streams (I)
Operan con chars (16 bits).La lectura se define en la clase Reader,
mientras que la escritura se define en la clase Writer.
Estas clases son abstractas.Sus herederas definen fuentes y destinos de
datos concretas.Se dividen en dos grupos:
E/S básica E/S filtrada.
14
Char Streams (II)
Métodos de lectura (Reader): int read(); int read(char[] b); int read(char[] b, int off, intlen);
Métodos de escritura (Writer): void write(intc); void write(char[] b); void write(char[] b, int off, intlen);
Apertura con el constructor.Cierre con el método:
public void close() throws IOException;
15
Char Streams (III)
Filtros: Clases para filtrar la información en los streams. Heredan de FilterReader o FilterWriter. Se usan asociándolas con un streambásico.
Ejemplos: FileReaderTest.java, FileWriterTest.java Cat.java AppletFile.java, AppletFile.htm
16
Tratamiento de Ficheros
Clase File: Permite el acceso convencional a los ficheros. Incluye métodos para el tratamiento de los atributos.
Clase FileDescriptor: Clase que representa un handler(manejador) de un
descriptor de un fichero del Sistema Operativo. Representa a un fichero abierto, e incluye su estado. Su uso es casi automático.
Ejemplos: Attr.java: Información sobre atributos de ficheros. Dir.java: Directorio recursivo.
17
Procesado de Tokens
Clase StreamTokenizer: Permite el tratamiento de tokens de Java desde un
streamde entrada. Se trata de un filtro.
Clase StringTokenizer: Similar a la anterior, pero toma los datos de un
String.Ejemplos:
18
Acceso directo a Ficheros
Clase RandomAccessFile: Acceso de lectura/escritura a ficheros (NO a streams).
Permite: Leer y escribir tipos primitivos de Java y arrays de
bytes en binario. Controlar la posición del puntero del fichero.
Ejemplos: