Java con datos primitivos en ficheiros

De MediaWiki
Ir a la navegación Ir a la búsqueda

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