En esta entrega de el curso de Java de RedesZone.net, vamos a empezar un nuevo apartado dentro de lo que se refiere a la programación en lenguaje Java. Anteriormente, hemos podido disfrutar de todo lo relacionado a las interfaces gráficas o GUIs. También hemos tratado lo más básico en lo que la programación se refiere, los tipos de variables, bucles, instrucciones de control y la utilización de listas.
Hoy comenzaremos con la introducción a las operaciones de entrada y salida de ficheros, otro tema que seguro, va a ser de vuestro interés y vais a saber sacar un buen provecho.
Comenzaremos con las nociones básicas de entrada y salida para así, en las entregas posteriores comenzar con la programación y los ejemplos prácticos.
¿Qué es un 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)
¿Qué tipos de ficheros hay?
- Programas: contienen instrucciones
- Datos: contienen informació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, …
Los 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
¿Cómo se puede leer y escribir en un fichero?
- Se utilizan los 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
¿Cómo se realiza la entrada y salida en Java?
La Entrada/Salida de Java se organiza generalmente mediante objetos llamados Streams (muy importante este término)
Un Stream es la generalización de un fichero:
- Secuencia ordenada de datos con un determinado origen y destino
- 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) que será el que necesitaremos para poder realizar todas las operaciones necesarias.
¿Qué tipos de Stream existen y como pueden clasificarse?
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 programa al dispositivo.
Según su cercanía al dispositivo:
- Iniciadores: son los que directamente vuelcan o recogen los datos del dispositivo
- Filtros: se sitúan entre un stream iniciador y el programa
Hasta aquí esta primera entrega de entrada y salida de ficheros. En la próxima entrega nos meteremos de lleno con los Streams, y veremos como pueden utilizarse en la lectura y escritura de ficheros.