Ficheros en Java
Tema 1. Introducción al análisis y diseño de programas
Tema 2. Clases y objetos
Tema 3. Herencia y Polimorfismo
Tema 4. Tratamiento de errores
Tema 5. Aspectos avanzados de los tipos de datos
Tema 6. Modularidad y abstracción: aspectos avanzados
Tema 7. Entrada/salida con ficheros
Tema 8. Verificación y prueba de programas
Prácticas de Programación
© M.Aldea y M. González
18/05/10
1
Tema 7. Entrada/salida con ficheros
Tema 7. Entrada/salida con ficheros
7.1. Ficheros
7.2. Flujos de datos (streams)
7.3. Salida binaria
7.4. Entrada binaria
7.5. Salida de texto
7.6. Entrada de texto
7.7. Entrada/Salida de texto con formato
7.8. Uso de ficheros como tablas
7.9. Resumen
7.10. Bibliografía
Prácticas de Programación
© M. Aldea yM. González
18/05/10
2
Tema 7. Entrada/salida con ficheros
7.1 Ficheros
7.1 Ficheros
Fichero:
• secuencia de bytes en un dispositivo de almacenamiento:
disco duro, CD, DVD, memoria USB, ...
• se puede leer y/o escribir
• se identifica mediante un nombre (pathname)
- /home/pepe/documentos/un_fichero
Tipos de ficheros:
• programas: contienen instrucciones
• datos: contieneninformación, como números (enteros o
reales), secuencias de caracteres, ...
• en algunos sistemas operativos (como Linux) también son
ficheros los directorios, los dispositivos, las tuberías, ...
Prácticas de Programación
© M. Aldea y M. González
18/05/10
3
Tema 7. Entrada/salida con ficheros
7.1 Ficheros
Ficheros de texto y binarios
Tipos de ficheros de datos:
• de bytes(binarios): pensados para ser leídos por un programa
• de caracteres (de texto): están pensados para ser leídos
y/o creados por una persona
Fichero de texto
Fichero binario
0
1
2
3
4
5
6
7
...
00000000
00000000
00000000
00001110
00000000
00000000
00000000
00100001
...
0
1
2
3
4
5
...
Un número
entero: 14
Otro número
entero: 33
00110001
00110100
0110100001101111
01101100
01100001
...
‘1’ (código ASCII 0x31)
‘4’ (código ASCII 0x34)
‘h’ (código ASCII 0x68)
‘o’ (código ASCII 0x6F)
‘l’ (código ASCII 0x6C)
‘a’ (código ASCII 0x61)
• Para “entender” los contenidos de un fichero es necesario
conocer de antemano el tipo de datos que contiene
© M. Aldea y M. González
18/05/10
Prácticas de Programación
4
Tema 7. Entrada/salida conficheros
7.1 Ficheros
Punteros de lectura y escritura
• Indican el próximo byte a leer o a escribir
• Gestionados automáticamente por el sistema operativo
• Comienzan apuntando al primer byte del fichero
• Van avanzando por el fichero según se van leyendo sus
contenidos
Ejemplo:
puntero
de lectura
Prácticas de Programación
lectura de un
int (4 bytes)
lectura de un
short (2bytes)
puntero
de lectura
puntero
de lectura
© M. Aldea y M. González
18/05/10
5
Tema 7. Entrada/salida con ficheros
7.2 Flujos de datos (streams)
7.2 Flujos de datos (streams)
La Entrada/Salida de Java se organiza generalmente mediante
objetos llamados Streams
Un Stream es la generalización de un fichero:
• secuencia ordenada de datos con
un determinado origen y destinoStream
• su origen o destino puede ser un
fichero, pero también un string o un dispositivo (p.e. el teclado)
Para poder usar un stream primero hay que abrirle
• se abre en el momento de su creación
• y hay que cerrarle cuando se deja de utilizar
Las clases relacionadas con streams se encuentran definidas en
el paquete java.io (io es la abreviatura de Input/Output)
Prácticas deProgramación
© M. Aldea y M. González
18/05/10
6
Tema 7. Entrada/salida con ficheros
7.2 Flujos de datos (streams)
Clasificación de los streams
Por el tipo de datos que “transportan”:
• binarios (de bytes)
• de caracteres (de texto)
Por el sentido del flujo de datos:
• de entrada: los datos fluyen desde el dispositivo o fichero hacia
el programa
• de salida: los datos fluyen desde el...
Regístrate para leer el documento completo.