Java - RandomAccessFile

 
Vista:

RandomAccessFile

Publicado por Clayder (25 intervenciones) el 04/07/2007 18:58:08
Hola:

Quisiera saber para que sirve la clase RandomAccessFile exactamente. Tengo dudas con respecto a su metodo seek() y su forma de utilizacion. Es decir, estaba probando su el funcionamiento de seek() y me di cuenta que solo puedo darle como argumentos, el inicio del archivo(0) o el final del archivo, ya que si le doy otro o no escribe o no lee, debido a una excepcion. Quisiera saber si estoy en lo correcto, o no.

Aqui les pongo un ejemplo. Mis preguntas las puse despues de cada seek() como comentario.

RandomAccessFile raf = new RandomAccessFile("prueba.dat","rw");
System.out.println("El puntero cola ======>"+raf.getFilePointer());

raf.writeUTF("Hola!!!!!");

long puntero= raf.getFilePointer();

System.out.println("el punto esta ahora en====>"+raf.getFilePointer());

raf.seek(puntero);/*¿Para volver a escribir en el archivo, tengo que mover el puntero hacia el fin del archivo necesariamente?*/
raf.writeUTF(" Como estas???");

raf.seek(0);/*¿¿¿Y para leerlo tengo que ubicar de nuevo el puntero al inicio???*/
System.out.println(raf.readUTF() + raf.readUTF());

raf.close();

Yo creia, que si ponia seek(1) comenzaba a leer despues del primer caracter, pero veo que no es asi, o al menos eso es lo que yo pienso. Les agradeceria me ayudaran a saber todas las utilidades de seek().

Gracias de antemano

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RandomAccessFile

Publicado por claydergc (25 intervenciones) el 20/03/2019 21:53:09
Ya no programo en Java, ahora soy full C++ :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 69
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

RandomAccessFile

Publicado por Jonay Zevenzui (23 intervenciones) el 21/03/2019 09:13:02
Ante este tipo de dudas yo suelo dirigirme directamente a la API de Java, no se si la has mirado, por si te sirve de ayuda te pego el enlace. Espero que te sirva

https://docs.oracle.com/javase/10/docs/api/index.html?javafx.swing-summary.html

Está es la descripción del método seek() de esa clase, sacada de la API:
.seek
public void seek​(long pos)
throws IOException
Sets the file-pointer offset, measured from the beginning of this file, at which the next read or write occurs. The offset may be set beyond the end of the file. Setting the offset beyond the end of the file does not change the file length. The file length will change only by writing after the offset has been set beyond the end of the file.
Parameters:
pos - the offset position, measured in bytes from the beginning of the file, at which to set the file pointer.
Throws:
IOException - if pos is less than 0 or if an I/O error occurs.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar