Taller de archivos. Objetivos. Describir el comportamiento de la clase RandomAccessFile para manejo de Archivos Cree una clase Ejercicio1, y en su mtodo main digite: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import java.io.RandomAccessFile; import java.io.File;
public static void main(String[ ] args) { try { RandomAccessFile f; f= new RandomAccessFile("c:/ruta/dato.txt","rw"); f.writeInt(2); f.writeDouble(8.1); f.seek(16); f.writeBytes("ups \n"); f.seek(12); f.writeInt(5); System.out.println("la posicin es "+ f.getFilePointer()); f.seek(20); f.writeDouble(9.1); f.seek(4); System.out.println("El dato es " + f.readDouble() ); System.out.println("el tamao del archivo es "+ f.length( )); f.close();
}catch(Exception e) { System.out.println("ocurrio un error "+e ); } }
Se utilizarn las diapositivas del curso de archivos con RandomAccessFile para contestar estas interrogantes. Preguntas: PARTE 1. 1. Qu se muestra al ejecutar el mismo? 2. Qu realiza try catch? 3. Para qu son necesarias las importaciones digitadas? 4. Qu realiza RandomAccessFile f? . Qu es f?; 5. Qu realiza f= new RandomAccessFile("c:/ruta/dato.txt","rw"); ? 6. Qu significa c:/ruta/dato.txt ? 7. Qu indica rw?
PARTE 2. Diapositiva de movimiento del apuntador o puntero.
8. writeInt(x), seek(x), writeDouble(x), readInt() son mtodos, atributos o clases? 9. qu realiza seek( x)? 10. Qu ocurre cuando no se utiliza el seek( x)? 11. Qu realiza writeInt( x) , writeDouble ( x) , writeBytes( x) ? 12. Cul es el formato o estructura interna del archivo? 13. Qu realiza readInt( ), readDouble( ) , readLine( )? 14. Por qu los mtodos write necesitan argumentos y los read no ? 15. Cul es la diferencia entre los valores o variables del seek y los valores o variables del write?
Formato o estructura interna para grabacin- lectura del archivo
PUNTEROS O POSICIONES 0 4 12 16 20 int double int String double 2 8.1 5 Ups\n 9.1 VALORES
PARTE 3
Elimine el archivo creado Cambie la lnea 18 f.seek(4); por f.seek(12) Cambie la lnea 19 por System.out.println("El dato es " + f.readInt() ); Ejecute el programa. Qu dato muestra?
Elimine el archivo creado Cambie la lnea 18 por f.seek(16); Cambie la lnea 19 por System.out.println("El dato es " + f.readLine() ); Ejecute el programa. Qu dato muestra?
Elimine el archivo creado Quite el \n, es decir cambie la lnea 12 por f.writeBytes("ups"); Ejecute el programa. Qu dato muestra? Por qu ocurre esto? Una vez comprobado, Vuelva a ubicar el \n en la lnea 12.
16. Qu ocurre cuando se realiza un write o read sin utilizar seek( )? 17. Qu ocurre sino se ubica el \n en una escritura String? 18. Qu realiza getFilePointer( )? 19. Sume el nmero de bytes y verifique cual es el valor que indica length( ) 20. Qu efecta close( )?
PARTE 4 Ejercicio2. Cree una nueva clase que utilice como base el cdigo del ejercicio anterior. Realice la mejora para que muestre al final (desde la lnea 18) , todos los datos ingresados en el siguiente orden 8.1 2 Ups 9.1 5
PARTE 5. Ejercicio 3.Cree una nueva clase que utilice como base el ejercicio anterior y muestre despus de cada lectura y escritura la posicin final del puntero.