Diferencia entre revisiones de «Java con datos primitivos en ficheoros»
(Página creada con «= 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…») |
|||
| (No se muestra una edición intermedia del mismo usuario) | |||
| Línea 1: | Línea 1: | ||
= Manexo de 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: | 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: | ||
| + | <div style="column-count:8;-moz-column-count:8;-webkit-column-count:8"> | ||
* byte | * byte | ||
* short | * short | ||
| Línea 9: | Línea 10: | ||
* boolean | * boolean | ||
* char | * char | ||
| + | </div> | ||
No uso con ficheiros cada tipo de dato primitivo ten a súa función de lectura e escritura, e é frecuente utilizar ficheiros binarios. | 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 | + | == Escritura == |
| − | |||
O primeiro paso e obter o stream do ficherio binario, do mesmo xeito que no apartado de “Java con ficheiros de bytes”: | O primeiro paso e obter o stream do ficherio binario, do mesmo xeito que no apartado de “Java con ficheiros de bytes”: | ||
| Línea 27: | Línea 28: | ||
Exemplo →DataOutpuStreamIn.java | Exemplo →DataOutpuStreamIn.java | ||
| − | Lectura | + | == Lectura == |
| − | |||
Como pasa coa escritura, necesitamos dalgunha forma obter a Stream do ficheiro que imos ler: | Como pasa coa escritura, necesitamos dalgunha forma obter a Stream do ficheiro que imos ler: | ||
Revisión actual del 15:07 28 feb 2022
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