Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Lectura/escritura con RandomAccessFile - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
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:
- 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