Sei sulla pagina 1di 4

Programación II.

Docente: Ing. Orlando Barcia Ayala

Objetivos.

Taller de archivos.

Describir el comportamiento de la clase RandomAccessFile para manejo de Archivos

Cree una clase Ejercicio1, y en su método main digite:

1

import java.io.RandomAccessFile;

2

import java.io.File;

3

4

public static void main(String[ ] args) {

5

try

6

{

7

RandomAccessFile f;

8

f= new RandomAccessFile("c:/ruta/dato.txt","rw");

9

f.writeInt(2);

10

f.writeDouble(8.1);

11

f.seek(16);

12

f.writeBytes("ups \n");

13

f.seek(12);

14

f.writeInt(5);

15

System.out.println("la posición es "+ f.getFilePointer());

16

f.seek(20);

17

f.writeDouble(9.1);

18

f.seek(4);

19

System.out.println("El dato es " + f.readDouble() );

20

System.out.println("el tamaño del archivo es "+ f.length( ));

21

f.close();

22

23

}catch(Exception e)

24

{

25

System.out.println("ocurrio un error "+e );

}

}

Se utilizarán las diapositivas del curso de archivos con RandomAccessFile para contestar estas interrogantes.

PARTE 1.

Preguntas:

1. ¿Qué se muestra al ejecutar el mismo?

2. ¿Qué realiza try … catch?

3. ¿Para qué son necesarias las importaciones digitadas?

5. ¿Qué realiza

6. ¿Qué significa “c:/ruta/dato.txt” ?

7. ¿Qué indica “rw”?

f= new RandomAccessFile("c:/ruta/dato.txt","rw"); ?

PARTE 2. Diapositiva de movimiento del apuntador o puntero.

8. ¿writeInt(x), seek(x), writeDouble(x), readInt() son métodos, 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. ¿Cuál es el formato o estructura interna del archivo?

13. ¿Qué realiza readInt( ), readDouble( ) , readLine( )?

14. ¿Por qué los métodos write necesitan argumentos y los read no ?

15. ¿Cuál es la diferencia write?

entre los valores o variables del seek y los valores o variables del

Formato o estructura interna para grabación- lectura del archivo

PUNTEROS O POSICIONES

0

4

12

16

20

int

double

8.1

int

String

Ups\n

double

9.1

2

5

VALORES

PARTE 3

Elimine el archivo creado Cambie la línea 18

Cambie la línea 19 por System.out.println("El dato es " + f.readInt() ); Ejecute el programa. ¿Qué dato muestra?

f.seek(4); por f.seek(12)

Elimine el archivo creado

Cambie la línea 18

Cambie la línea 19 por System.out.println("El dato es " + f.readLine() ); Ejecute el programa. ¿Qué dato muestra?

por f.seek(16);

Elimine el archivo creado Quite el \n, es decir cambie la línea 12 por

Ejecute el programa. ¿Qué dato muestra? ¿Por qué ocurre esto? Una vez comprobado, Vuelva a ubicar el \n en la línea 12.

f.writeBytes("ups");

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 número de bytes y verifique cual es el valor que indica length( )

20. ¿Qué efectúa close( )?

PARTE 4 Ejercicio2. Cree una nueva clase que utilice como base el código del ejercicio anterior.

Realice la mejora para que muestre al final (desde la línea 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 después de cada lectura y escritura la posición final del puntero.