Java con datos primitivos en ficheiros
Manexo de datos primitivos en ficheiros
En ocasións temos a necesidade de utilizar datos primitivos en ficheiros; estos datos primitivos son os herdados de linguaxes máis clásicas e non se comportan como obxectos normais no paradigma orientación de obxectos. Son os seguintes:
- byte
- short
- int
- long
- float
- double
- boolean
- char
No uso con ficheiros cada tipo de dato primitivo ten a súa función de lectura e escritura, e é frecuente utilizar ficheiros binarios.
Escritura
O primeiro paso e obter o stream do ficherio binario, do mesmo xeito que no apartado de “Java con ficheiros de bytes”:
FileOutputStream fileOutputStream = new FileOutputStream(absolutePath);
Unha vez obtido o stream para a escritura (sexa por ruta de string ou obxecto da clase Path) é preciso crear un obxecto da clase DataOutStream que recibe como parámetro un obxecto tipo FileOutputStream:
DataOutputStream salida = new DataOutputStream(fileOutputStream);
Co obxecto DataOutputStream xa temos métodos de escritura por cada tipo de dato primitivo desta forma → writexXx() onde xXx é o nome do dato primitivo.
Exemplo de escribir datos primitivos int (enteiro): Exemplo →DataOutpuStreamIn.java
Lectura
Como pasa coa escritura, necesitamos dalgunha forma obter a Stream do ficheiro que imos ler:
FileInputStream fileInputStream = new FileInputStream(String ruta);
Recordade que FileInputStream podese obter tamén do obxecto File coma unha das formas máis usadas. A partires do obxecto anterior necesitamos crear un tipo DataInputStream, que é onde java nos ofrece os métodos de lectura. Un método de lectura por cada tipo de dato primitivo: readxXx() onde xXx é o nome do dato primitivo. Exemplo de ler datos primitivos int (enteiro): Exemplo → DataInputStreamInt.java
As vantaxes de utilizar ficheiros binarios con datos primitivos son a inmediatez e a non necesidade de conversión da datos (casting). Por outra banda non nos da a liberdade e flexibilidade dos ficheiros de texto. Temos que ter claro qué tipo de dato imos ler.
Actividade:
Desenvolve un programa en Java que crea unha matriz de elementos de tipo double e lee por teclado o valor dos seus elementos. A continuación escribe o contido da matriz nun ficheiro. O principio do ficheiro escribense dous enteiros cos valores do número de filas e columnas da matriz.
Solución: Actividade1.java