Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Lectura/escritura con RandomAccessFile - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 19 de marzo de 2021 por Amadeo M.

224 visualizaciones

Descargar la transcripción

Una vez que hemos visto la clase, vamos a crear un fichero con datos y después vamos a proceder a leer. 00:00:00
Para ello hemos creado este programa principal, muy pequeñito, el fichero datos.txt, donde vamos a mandar esta ruta a este método que se llama crearRaf. 00:00:09
Una vez que creemos información, pues vamos a leerlo con este método que se llama readRaf. 00:00:21
Vamos a ir a crear RAF. Bueno, crear RAF, su intención es la siguiente. Intenta abrir para lectura y escritura un fichero, el fichero que le hemos pasado, por eso ponemos el modo RW. 00:00:26
Si el fichero ya contiene datos, simplemente nos posicionamos al final de él, por lo cual preguntamos primero si tiene datos y si su longitud es mayor que cero, y si es así, nos vamos directamente a esa posición, al final de todo. 00:00:43
con lo cual lo que vamos a hacer es generar un número aleatorio 00:00:56
simplemente para que los datos vayan modificándose 00:01:00
y vamos a escribir tres informaciones 00:01:02
un byte, un carácter y un número de formato long 00:01:05
de formato largo y cerramos nuestro fichero 00:01:12
si hubiera problemas saltaría una excepción 00:01:14
y diríamos que hay problemas y devolveríamos falso 00:01:17
puesto que hemos puesto que este método devuelva un valor boolean 00:01:20
Si no ha habido problemas, pues llegaremos aquí y nos devolverá true. 00:01:23
Con esto simplemente vamos a añadir un registro con estos tres datos, cada vez. 00:01:28
Y si no existiera, pues lo crearía el fichero. 00:01:33
Hasta aquí parece claro. 00:01:36
Vamos ahora a leer el fichero. 00:01:38
Entonces lo iríamos aquí, a readRath. 00:01:40
Y aquí, en leer el fichero, pues lo que hacemos es abrirlo ya solamente en modo lectura. 00:01:43
Y vamos a leer todos los registros que haya. 00:01:49
Entonces para ello vamos a ver dónde está situado el puntero. Si el puntero está antes del tamaño, pues estamos dentro del fichero y por tanto vamos leyendo siempre los tres datos en esa misma orden que los introdujimos, es decir, readByte, readChart y readLong. 00:01:51
Y vamos a mostrar en pantalla esa información. El primer dato, el segundo y el tercero. Y así continuamente. Esto es lo que vamos a hacer ahora. Una vez que ya tenemos claro que hacen estos dos métodos, pues vamos a ir directamente a ejecutar esta aplicación. 00:02:08
En este momento tengo que decir que no hay el fichero datos.txt, no se encuentra. 00:02:27
Con lo cual vamos a ejecutar y se generará un fichero datos.txt. 00:02:35
Vamos a por ello. 00:02:39
Bueno, hemos generado un registro, como es aleatorio, pues ha dado el número 23x23. 00:02:41
Muy bien, eso es lo que dice que hay. 00:02:48
Vamos a volver a nuestra línea de comandos y vamos a comprobar que aparece aquí. 00:02:50
Y efectivamente se ha creado un fichero que tiene esta información, datos.txt y que ocupa 11 bytes. 00:02:54
Sería interesante saber cómo es el contenido. 00:03:05
Vamos a intentar hacer una cosa que seguramente nos va a fallar, pero vamos a intentarlo. 00:03:08
Efectivamente, intentamos mostrar este fichero, es un fichero binario, con lo cual aquí aparecen caracteres que no podemos leer. 00:03:12
Sin embargo, como hemos visto en el programa, el programa sí ha sido capaz de leerlos. 00:03:20
Voy a generar algún registro más. 00:03:25
Hemos generado tres registros y efectivamente el fichero ha ido creciendo. 00:03:28
¿Qué es lo que queremos ahora? 00:03:36
Aprovechar esta característica de que es un fichero directo para ir directamente a un registro concreto. 00:03:37
Para ello, vamos a ir al registro, por ejemplo, 8, que sabemos que en este momento no existe. 00:03:42
Y vamos a llamar a un método que se llama readRaph, que se le pasa el fichero y el registro que queremos leer. 00:03:50
Bueno, pues vamos a ver cómo sería ese programa. 00:03:56
Una opción sería recorrerlo secuencialmente, ir leyendo registro a registro y quedarnos en el que nos piden. 00:04:01
Pero ese método se aplica a un fichero secuencial, no a un fichero directo que nos permita acceder directamente al registro. 00:04:08
Con lo cual vamos a ver cómo lo podríamos hacer. 00:04:15
Este es el método readRough, que le pasamos la ruta y le pasamos el registro que queremos leer. 00:04:18
Lo intentamos abrir de lectura y si no hay problemas, vamos a buscar qué tamaño tiene cada registro. 00:04:24
Entonces vemos cuántos bytes ocupa un byte, cuántos bytes ocupa un carácter y cuántos bytes ocupa un long. 00:04:32
¿de acuerdo? una vez que sabemos el tamaño de un registro 00:04:40
simplemente nos vamos a ir a el registro anterior 00:04:44
porque vamos a empezar en el registro 1, 2, 3, 4 00:04:49
entonces vamos a ir al registro menos 1 y lo multiplicamos por el tamaño 00:04:52
con eso nos posicionaremos exactamente en el inicio del registro que queremos leer 00:04:57
si esta longitud es menor que la longitud del fichero 00:05:01
perdón, si es menor que la longitud del fichero 00:05:08
estamos seguros de que vamos a encontrar la información 00:05:10
estamos dentro del fichero 00:05:12
por lo cual nos posicionamos ahí 00:05:14
seek longitud 00:05:16
y leemos los tres datos 00:05:18
y esta es la información que vamos a devolver 00:05:20
si no estuviéramos dentro 00:05:23
como estamos en el ejemplo que estamos haciendo ahora mismo 00:05:24
que estamos en el registro 8 y todavía no hay tantos registros 00:05:26
pues simplemente el resultado devolvería el valor inicial nulo 00:05:29
con lo cual tendríamos claro lo que va a aparecer 00:05:33
sabiendo esto vamos a ejecutar 00:05:36
me voy aquí y vamos a ejecutar este programa 00:05:39
lo ejecuto una vez 00:05:43
y por supuesto no hay registro 8 00:05:45
lo voy a ejecutar otra vez 00:05:49
otra vez, otra vez 00:05:50
y aquí ya hay 8 registros 00:05:53
y efectivamente me está devolviendo el registro 14 00:05:56
voy a seguir ejecutando para tener más información 00:05:59
y vemos que efectivamente él me sigue devolviendo el que queremos. 00:06:02
Esta es la utilidad máxima de un finsel acceso directo, el poder ir a cualquier posición y encontrar la información. 00:06:08
Idioma/s:
es
Autor/es:
Amadeo Mora
Subido por:
Amadeo M.
Licencia:
Dominio público
Visualizaciones:
224
Fecha:
19 de marzo de 2021 - 11:14
Visibilidad:
Público
Centro:
IES CLARA DEL REY
Duración:
06′ 18″
Relación de aspecto:
16:9 Es el estándar usado por la televisión de alta definición y en varias pantallas, es ancho y normalmente se le suele llamar panorámico o widescreen, aunque todas las relaciones (a excepción de la 1:1) son widescreen. El ángulo de la diagonal es de 29,36°.
Resolución:
908x512 píxeles
Tamaño:
10.62 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid